我有一個應用程序使用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