2011-12-12 83 views
1

我試圖在應用移動到背景時播放聲音。iPhone:當應用移動到背景時播放聲音

- (void)applicationWillResignActive:(UIApplication *)application 
{ 
    NSError *error; 
    NSURL *goodByeSoundUrl = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"GoodBye" ofType:@"wav"]]; 
    AVAudioPlayer *goodByeSound = [[AVAudioPlayer alloc] initWithContentsOfURL:goodByeSoundUrl error:&error]; 
    [goodByeSound play]; 
} 

此代碼不適用於我的設備(帶iOS 5.0的iPhone 4)。但它在模擬器上工作。 如果我將以下行添加到Info.plist中,它正在播放聲音,但主屏幕上有一個紅色條表示應用程序在後臺仍處於活動狀態。其實這並不是我想要的。我只想要播放聲音,並且我不需要應用程序始終處於活動狀態。

有沒有解決這個問題的方法?

回答

0

我不認爲你可以這樣做,因爲當你的應用程序被推到背景時,你正在產生的所有音頻將被靜音。

添加背景模式將不起作用,因爲這僅適用於音頻播放器。

<key>UIBackgroundModes</key> 
<array> 
    <string>audio</string> 
</array> 
1

在代碼中添加這三行: -

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; 
[[AVAudioSession sharedInstance] setActive: YES error: nil]; 
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];