在iPad上,为什么AVAudioSessionCategoryAmbient会停止播放iPod中的音乐?

Jer*_*y L 3 iphone avfoundation ios

以下代码应播放声音,不会停止播放iPad的音乐/ iPod音乐.(在iOS 5.1上,iPod应用程序成为音乐应用程序).

它用来AVAudioSessionCategoryAmbient代替AVAudioSessionCategorySoloAmbient.但它实际上在任何一种情况下都停止了音乐.使用有什么问题AVAudioSessionCategoryAmbient吗?

NSURL *sound0URL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"0" ofType:@"aiff"]];

audioPlayer0 = [[AVAudioPlayer alloc] initWithContentsOfURL:sound0URL error:nil];

audioPlayer0.delegate = self;
[audioPlayer0 prepareToPlay];

NSError *setCategoryErr = nil;
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:&setCategoryErr];

NSLog(@"%@", setCategoryErr);

audioPlayer0.currentTime = 0;
[audioPlayer0 play];
Run Code Online (Sandbox Code Playgroud)

setCategoryErr打印为(null)所以应该没有错误.

Mic*_*ick 5

正如我在评论中所说,似乎解决方案是在调用prepareToPlayAVAudioPlayer 之前设置AVAudioSession类别.