setPreferredInput WithBlueTooth не работает
Я пытаюсь настроить устройство Bluetooth на предпочтительный вход в 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 yichaoyun [4196: 1228652] [avas] AVAudioSessionPortImpl.mm:56:ValidateRequiredFields: Неизвестный выбранный источник данных для порта h.ear (MDR-EX750BT) (тип: BluetoothHFP)
2019-01-11 17: 59: 51.400381 + 0800 yichaoyun [4196: 1228652] 1111111111 avsession desportDesc =
2019-01-11 17: 59: 51.410321 + 0800 yichaoyun [4196: 1228652] [avas] AVAudioSessionPortImpl.mm:56:ValidateRequiredFields: Неизвестный выбранный источник данных для порта h.ear (MDR-EX750BT) (тип: BluetoothHFP)
2019-01-11 17: 59: 51.410357 + 0800 yichaoyun [4196: 1228652] [avas] AVAudioSessionPortImpl.mm:56:ValidateRequiredFields: Неизвестный выбранный источник данных для порта h.ear (MDR-EX750BT) (тип: BluetoothHFP)
2019-01-11 17: 59: 51.410447 + 0800 yichaoyun [4196: 1228652] ret = 1 текущий маршрут = "); выходы = ( "")>
Он показывает, что подключить устройство Bluetooth успешно. Но я слышу только некоторые шумы. Затем он перешел в тишину. Есть только один, кто сталкивается с тем же вопросом? Как я могу это исправить?
1 ответ
В конце концов я нашел правильный ответ. Вначале следует использовать AVAudioSession для сбора и записи, что очень важно. А затем установить подобную категорию: [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionAllowBluetooth AVAudioSession sharedInstance] setPreferredInput:_bluetoothPort
error:nil]; когда вы получаете текущий ввод, как это: input = (
input = (
"