当我有一个以上的AVPlayer时,是否可以通过AVPLayer委托来处理中断? 我已经尝试了几个东西,在电话后再次启动两个AVPlayer,但仍然只有一个响应并启动,第二个暂停并且什么也没做。
答案 0 :(得分:0)
我的猜测是你需要保留players
的数组,这样你就可以浏览它们并暂停/启动每个数组。您可以在创建可在audioPlayerBeginInterruption:
和audioPlayerEndInterruption:
Apple的文档暗示中断只处理一个player
...如果该类声明方法输入players
而不是player
那么我会说你可能只有完成了一个for循环,通过它们进行轮询,如下面的代码:
AVAudioPlayer *player;
for (player in players) {
[player pause];
//or [player play];
}
答案 1 :(得分:0)
我确定你已经解决了这个问题,但我还是想记录我的答案。我刚刚在iPhone上测试了这个(4.3.2),我的应用程序正在使用两个不同的AVAudioPlayers播放两种不同的声音。在接到电话时,我会为每个玩家中断两种中断方法:
- (void)audioPlayerBeginInterruption:(AVAudioPlayer *) player;
- (void)audioPlayerEndInterruption:(AVAudioPlayer *) player;
所以你可以很容易地重新启动两个玩家:
- (void) audioPlayerEndInterruption:(AVAudioPlayer *) player {
NSLog (@"Interruption ended. Resuming audio playback.");
[player prepareToPlay];
[player play];
}