是否可以在模拟器上测试iOS 4多任务/背景音乐?

时间:2010-07-06 11:01:46

标签: ios-simulator avaudioplayer multitasking

我在Info.plist中添加了UIBackgroundModes属性,以使数组条目为“audio”并添加了设置音频会话的调用:[session setCategory: AVAudioSessionCategoryPlayback error: &error];

然而,我唯一的测试设备是iPod Touch 2G,它不支持多任务处理。我尝试过模拟器但是当我切换到Safari时音乐停止播放。但当我切换回我的应用程序时,歌曲继续播放到比离开应用程序时更远的位置。

它似乎继续在后台播放但我在使用其他应用程序(Safari)时没有听到我的应用程序的音频。

4 个答案:

答案 0 :(得分:18)

我也有同样的问题。在模拟器中,音频暂停,当您重新启动时,它会恢复播放。但是在设备上测试它完美运行并且音频继续在后台播放。我使用的示例代码是

AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[audioPlayer play];

答案 1 :(得分:16)

iPhone模拟器不支持背景音频。 资料来源:WWDC 2010,第109节 - 采用多任务处理第2部分。

答案 2 :(得分:2)

你是否在info.plist中添加了必需的背景模式键... 如果没有尝试添加此... 转到info.plist文件并单击添加,添加“必需的背景模式”,点击一个小三角形,你将获得item0,添加“App播放音频”... 这很好用......

〜Raviraja

答案 3 :(得分:1)

这对我来说甚至可以在设备上使用。

AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[audioPlayer play];

这个并设置info.plist键以启用背景音频是在iPhone应用程序中启用背景音频所需的。但是,如果您希望播放一系列音频文件,则需要将每个播放操作作为后台任务执行,如下所示:

UIBackgroundTaskIdentifier bgTask = [[UIApplication sharedApplication]beginBackgroundTaskWithExpirationHandler:nil];

执行必要的操作:

[[UIApplication sharedApplication] endBackgroundTask:bgTask];