在我的应用程序中,我使用的是播放和记录类别,即:
UInt32 sessionCategory = kAudioSessionCategory_PlayAndRecord;
CheckError( AudioSessionSetProperty (kAudioSessionProperty_AudioCategory,
sizeof (sessionCategory),
&sessionCategory), "Couldn't set audio category");
在应用程序中,任何播放的音频最初都会通过接收器输出,直到我设置:
UInt32 doChangeDefaultRoute = 1;
AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, sizeof (doChangeDefaultRoute), &doChangeDefaultRoute);
然而,我真正想要的是通过连接的蓝牙扬声器输出音频。例如,我有一个通过蓝牙连接的扬声器。我可以使用原生音乐应用程序通过它播放音乐。但是,在我的应用程序中,当使用 playandrecord 类别时,它只能在设备上播放。我努力了:
UInt32 allowBluetoothInput = 1;
OSStatus stat = AudioSessionSetProperty (
kAudioSessionProperty_OverrideCategoryEnableBluetoothInput,
sizeof (allowBluetoothInput),
&allowBluetoothInput
);
也:
CFStringRef audioRouteOverride = kAudioSessionOutputRoute_BluetoothHFP;
OSStatus s = AudioSessionSetProperty (kAudioSessionProperty_OutputDestination,
sizeof(audioRouteOverride),&audioRouteOverride);
没运气。似乎这应该是一个简单的属性集,但 Idk. 有任何想法吗?