iOS版:使用蓝牙音频输出(kAudioSessionProperty_OverrideCatego

2019-07-18 23:56发布

我有几个问题涉及到多个蓝牙任务CoreAudio的AudioSession框架,我希望有人能帮助我处理这些问题,或者至少可以证实我的最新发现。 该用例是想与支持,HFP和A2DP蓝牙无线连接导航应用。 我已阅读了整个AudioSession编程指南,但我必须特别是通过使用蓝牙音频输出仍存在一些悬而未决的问题。

  1. kAudioSessionProperty_OverrideCategoryEnableBluetoothInput:在AudioSession kAudioSessionCategory_PlayAndRecord的情况下被设置和你将覆盖以下属性蓝牙HFP音频输出(kAudioSessionOutputRoute_BluetoothHFP)才有可能。 这是真的? 如果没有,我怎么能作为路线用的MediaPlayback会话kAudioSessionOutputRoute_BluetoothHFP路线的例子。

  2. 在后台模式音频输出是不可能的类别kAudioSessionCategory_PlayAndRecord。 因此,如果我在后台我无法通过蓝牙HFP航线播放声音。 这是真的? 有没有办法如何通过蓝牙HFP协议发送音频,如果应用程序在后台?

  3. 如果有A2DP功能的设备可用我的音乐路线会一直自动切换到kAudioSessionOutputRoute_BluetoothA2DP路线。 我怎样才能防止这种路线的变化? 此外,我怎么可以指定输出路径,我想拥有的时刻。 随着iOS5中,可以通过kAudioSessionProperty_AudioRouteDescription标志来查询所有这些航线的目的地,但我不知道我怎么可以将其设置为我想拥有它。 是它在某种程度上可能实现这一目标?

我希望你们中的一些可以帮助我这些问题。 这将真正帮助我的CoreAudio的总体认识,尤其是AudioSession框架。

Answer 1:

AudioSession是棘手的事。

kAudioSessionProperty_OverrideCategoryEnableBluetoothInput:在AudioSession kAudioSessionCategory_PlayAndRecord的情况下被设置和你将覆盖以下属性1.蓝牙HFP音频输出(kAudioSessionOutputRoute_BluetoothHFP)才有可能。 这是真的? 如果没有,我怎么能作为路线用的MediaPlayback会话kAudioSessionOutputRoute_BluetoothHFP路线的例子。

如果你有一个蓝牙耳机连接,那么它是真实的。 您将需要两个kAudioSessionCategory_PlayAndRecord音频会话集和kAudioSessionProperty_OverrideCategoryEnableBluetoothInput设置有音频播放出一个蓝牙耳机。 EnableBluetoothInput影响输入和输出根据此 。 还记得,音频将在8000赫兹发挥应有蓝牙输入设备的限制。 对于连接,支持A2DP的设备,你可以在音频会议kAudioSessionCategoryMediaPlayback离开它,它会在44100赫兹的采样率播放。

在背景模式下2.Audio输出是不可能的与类别kAudioSessionCategory_PlayAndRecord。 因此,如果我在后台我无法通过蓝牙HFP航线播放声音。 这是真的? 有没有办法如何通过蓝牙HFP协议发送音频,如果应用程序在后台?

打通过蓝牙HFP音频的背景是可能的,只要你设置在您的应用程序的plist背景音频模式键。 查看更多在这里 。

3.如果有一个A2DP功能的设备可用我的音乐路线会一直自动切换到kAudioSessionOutputRoute_BluetoothA2DP路线。 我怎样才能防止这种路线的变化? 此外,我怎么可以指定输出路径,我想拥有的时刻。 随着iOS5中,可以通过kAudioSessionProperty_AudioRouteDescription标志来查询所有这些航线的目的地,但我不知道我怎么可以将其设置为我想拥有它。 是它在某种程度上可能实现这一目标?

你想去哪里音频走呢? 你可以尝试音频会话设置为PlayAndRecord阻止它去A2DP。 这可能是在你的控制,虽然,音频会话将使用其认为是直观的用户。 如果他们只是连接了A2DP的设备,你只能输出音频的A2DP设备将被使用。



Answer 2:

他们提到,这将仅用于USB配件。

http://developer.apple.com/library/ios/#documentation/AudioToolbox/Reference/AudioSessionServicesReference/Reference/reference.html



文章来源: iOS: Using Bluetooth audio output (kAudioSessionProperty_OverrideCategoryEnableBluetoothInput) AudioSession