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

时间:2012-04-30 02:49:21

标签: iphone ios avfoundation

以下代码应播放声音,不会停止播放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];

setCategoryErr打印为(null),因此不会出现错误。

1 个答案:

答案 0 :(得分:5)

正如我在评论中所说,似乎解决方法是在调用AVAudioPlayer上的prepareToPlay之前设置AVAudioSession类别。