当应用程序移动到后台时,我正在尝试播放声音。
- (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>
实际上这不是我想要的。我只是希望播放声音,我不需要应用程序在后台始终处于活动状态。
这个问题有解决方法吗?
答案 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>