iPhone:当应用移动到背景时播放声音

时间:2011-12-12 10:57:30

标签: iphone audio background avaudioplayer

当应用程序移动到后台时,我正在尝试播放声音。

- (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中,它正在播放声音,但主屏幕上有一个红色条,表示该应用在后台仍处于活动状态。

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

实际上这不是我想要的。我只是希望播放声音,我不需要应用程序在后台始终处于活动状态。

这个问题有解决方法吗?

3 个答案:

答案 0 :(得分:1)

在代码中添加以下三行: -

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

答案 1 :(得分:0)

答案 2 :(得分:0)

我认为你不能这样做,因为当你的应用程序被推到后台时,你正在制作的所有音频都将被静音。

添加后台模式不起作用,因为这仅适用于音频播放器。

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