2013-04-29 86 views
3

我正試圖在Objective-C中實現一個功能,其中用例需要用戶說出免提藍牙耳機,將他們的聲音與音頻文件混合並通過耳機插孔播放。Objective-c從藍牙HFP重新路由音頻輸入以混合音頻輸出耳機插孔

我有程序工作,並將允許通過HFB或使用有線麥克風混合麥克風和音頻。但是音頻總是和麥克風源一樣播放。我無法找到一種方法來覆蓋只有音頻輸出到耳機插孔。

我用下面的代碼,這是我的文檔重寫輸出到揚聲器中發現,但我不能找到一個迫使音頻到耳機插孔:

[[AVAudioSession sharedInstance] overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:nil]; 

與上述線的另一問題代碼是它覆蓋輸入和輸出到內置揚聲器和內置麥克風。

回到我的使用案例 - 我需要使用免提藍牙來通過耳機插孔輸出音頻。任何想法如何實現?

回答

2

我有一個非常相似的用例,但在搜索Apple文檔並直接與Apple交談之後,目前無法獨立設置輸入和輸出數據源/端口。

每蘋果的文檔:

https://developer.apple.com/library/ios/qa/qa1799/_index.html

如果應用程序使用setPreferredInput:錯誤:方法來選擇藍牙HFP輸入,輸出將自動切換到藍牙HFP輸出。此外,使用MPVolumeView的路由選擇器選擇藍牙HFP輸出將自動將輸入更改爲藍牙HFP輸入。因此即使只有輸入或輸出單獨設置,輸入和輸出也始終會在藍牙HFP設備上結束。

向Apple提交錯誤報告。如果有足夠的投訴,他們可能會改變它。