2010-07-07 143 views
6

有沒有辦法讓用戶選擇他們用於音頻輸出的設備?在iPhone上選擇音頻設備

在我發現,您可以選擇通過kAudioSessionProperty_OverrideAudioRoute設置要麼使用哪條路線文檔:

  • kAudioSessionOverrideAudioRoute_None,或
  • kAudioSessionOverrideAudioRoute_Speaker

不過,我想讓用戶使用他們的藍牙耳機來聽音頻。

如果你看看蘋果自己的'語音備忘錄'應用程序,在播放菜單中左上角有一個按鈕,讓你選擇使用哪個音頻設備。當藍牙耳機連接,按下按鈕會彈出一個菜單,能夠之間進行選擇:

  • 藍牙耳機
  • iPhone
  • 音箱

有沒有辦法實現這個功能在我自己的應用程序中使用標準的Apple API?

回答

13

3.1中有兩種協議支持將音頻輸出到藍牙設備,使用取決於附件。第一個是A2DP,用於支持接收立體聲音樂的Accessore,另一個則免提提供給所有免提配件。 要激活第一個選項,需要使用具有音量滑塊和音頻設備選擇按鈕的MPVolumeView類,當此視圖添加到應用程序中的任何視圖時,它將爲用戶提供一種設置體積,並選擇一個BT設備是否連接(這是我發現的唯一方法) 。另一方面,第二個選擇可以使用呼叫

UInt32 bt = TRUE; 
result = AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryEnableBluetoothInput , sizeof(UInt32), &bt); 

的機應用必須初始化音頻會話,並使用corect被激活catagory(它必須支持重新編碼才能正常工作)。該EnableBluetoothInput設定畢竟輸入和輸出的音頻將通過免提設備(如果連接當然:))的路由

1

最簡單的方法是添加MPVolume控制(link to documentation )到您的用戶界面並設置showsVolumeSlider = NO並顯示RouteButton = YES。

用戶將有一個路由按鈕將音頻路由到他們選擇的設備。