我正在尝试将蓝牙设备设置为 audioSession 中的首选输入。
这是我的代码:
if(speaker)
{
NSLog(@"Audio use speaker");
CGFloat set = 5.0f;
AudioQueueSetParameter(audioQueue, kAudioQueueParam_Volume, set);
[sessionInstance overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:&error];
}else{
NSLog(@"QCAudio use headset");
NSError *audioError = nil;
BOOL hasAvaliableBuleTooth = NO;
NSArray* b_routePort = @[AVAudioSessionPortBluetoothHFP];
NSArray* portDescArr = [[AVAudioSession sharedInstance] availableInputs];
AVAudioSessionPortDescription* desPortDesc;
for (AVAudioSessionPortDescription* portDesc in portDescArr){
if ([b_routePort containsObject:portDesc.portType])
{
desPortDesc = portDesc;
hasAvaliableBuleTooth = YES;
}
}
if (hasAvaliableBuleTooth == YES) {
NSLog(@"1111111111 avsession desportDesc = %@",desPortDesc);
BOOL ret =[[AVAudioSession sharedInstance] setPreferredInput:desPortDesc error:&audioError];
NSLog(@"ret = %d current route = %@",ret, [[AVAudioSession sharedInstance] currentRoute]);
}else{
NSLog(@"222222222222 avsession");
CGFloat set = 1.0f;
AudioQueueSetParameter(audioQueue, kAudioQueueParam_Volume, set);
[sessionInstance overrideOutputAudioPort:AVAudioSessionPortOverrideNone
error:&error];
}
}
我有这个标志:
2019-01-11 17:59:51.400283+0800 ychaoyun[4196:1228652] [avas] AVAudioSessionPortImpl.mm:56:ValidateRequiredFields: 端口 h.ear (MDR-EX750BT) 的未知选定数据源(类型:BluetoothHFP)
2019-01-11 17:59:51.400381+0800 ychaoyun[4196:1228652] 1111111111 avsession desportDesc =
2019-01-11 17:59:51.410321+0800 ychaoyun[4196:1228652] [avas] AVAudioSessionPortImpl.mm:56:ValidateRequiredFields: 端口 h.ear (MDR-EX750BT) 的未知选定数据源(类型:BluetoothHFP)
2019-01-11 17:59:51.410357+0800 ychaoyun[4196:1228652] [avas] AVAudioSessionPortImpl.mm:56:ValidateRequiredFields: 未知选择的端口 h.ear 数据源 (MDR-EX750BT) (类型: BluetoothHFP)
2019-01-11 17:59:51.410447+0800 ychaoyun[4196:1228652] ret = 1 当前路线 = " ); 输出 = ( "" )>
显示连接蓝牙设备成功。但我只能听到一些噪音。然后转为静音。只有一个人面临同样的问题吗?我该如何解决?