我有一个应用程序使用RemoteIO进行输入输出处理(PlayAndRecord类别),并且还包含一个MPMusicPlayerController。MPMusicPlayerController杀死iPhone上的RemoteIO扬声器路线
奇怪的是:在iPhone上,当RemoteIO正在运行且iPhone扬声器是音频目标时,在MPMusicPlayerController中开始播放将导致kAudioSessionBeginInterruption事件,并且我的RemoteIO已关闭。 iPod音乐(MPMusicPlayerController)继续播放。
看来,在iPhone上,与扬声器路由,RemoteIO和MPMusicPlayerController不能同时播放?在iPad上,我运行RemoteIO和MPMusicPlayerController都没有问题。在iPhone上,如果我将一些东西(耳机,扬声器等)插入耳机插孔,一切都可以正常工作,并且两个流都可以运行。这似乎只是iPhone上的一个问题,如果扬声器是目的地。
当检测到Receiver输出时,我会覆盖AudioSession输出到iPhone扬声器(kAudioSessionProperty_OverrideCategoryDefaultToSpeaker),这对用户来说是更自然的期望。 iPod播放器似乎也这样做。
我还将属性kAudioSessionProperty_OverrideCategoryMixWithOthers设置为true。这可以让iPod播放器(大概)一起玩。
我写了一些测试代码,稍后重新启动我的RemoteIO会话,这将导致MPMusicPlayerController停止播放。因此表明演讲者的目的地可能是排他性的?
我也尝试过使用MPMusicPlayerController的'iPodMusicPlayer'和'applicationMusicPlayer'成员,这两者之间的上述结果没有任何区别。
任何意见肯定赞赏
经过进一步测试,发现iPhone扬声器目的地是唯一的奇怪情况(iPad正常工作,耳机工作正常)后,我已经向Apple提交了一个Bug。 – MOK9 2012-04-05 00:05:19