gpt4 book ai didi

ios - setPreferredInput WithBlueTooth 不起作用

转载 作者:行者123 更新时间:2023-11-28 23:38:37 35 4
gpt4 key购买 nike

我正在尝试将蓝牙设备设置为 audioSession 中的 preferinput。

这是我的代码:

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: Unknown selected data source for Port h.ear (MDR-EX750BT) (type: 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: Unknown selected data source for Port h.ear (MDR-EX750BT) (type: BluetoothHFP)

2019-01-11 17:59:51.410357+0800 yichaoyun[4196:1228652] [avas] AVAudioSessionPortImpl.mm:56:ValidateRequiredFields: Unknown selected data source for Port h.ear (MDR-EX750BT) (type: BluetoothHFP)

2019-01-11 17:59:51.410447+0800 yichaoyun[4196:1228652] ret = 1 current route = " ); outputs = ( "" )>

显示连接蓝牙设备成功,但我只能听到一些噪音,然后就没有声音了,请问只有一个人遇到同样的问题吗?如何解决?

最佳答案

我终于找到了正确的答案。AVAudioSession应该用来收集和记录,这一点非常重要。

然后像这样setCategory:

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord 
withOptions:AVAudioSessionCategoryOptionAllowBluetooth error:&error];

设置首选输入:

[[AVAudioSession sharedInstance] setPreferredInput:_bluetoothPort error:nil];

当你得到这样的当前输入时:

inputs = (
"< AVAudioSessionPortDescription: 0x28185bf00, type = MicrophoneBuiltIn; name = iPhone \U9ea6\U514b\U98ce; UID = Built-In Microphone; selectedDataSource = \U524d >"
);

outputs = (
"< AVAudioSessionPortDescription: 0x28185bfb0, type = BluetoothA2DPOutput; name = h.ear (MDR-EX750BT); UID = 04:5D:4B:4A:4F:31-tacl; selectedDataSource = (null) >"
)>.

有效!但我仍然不明白为什么 Apple 的输入显示首选输入是“iPhone MicrophoneBuiltIn”但“蓝牙耳机”有效。这是一个错误吗?

关于ios - setPreferredInput WithBlueTooth 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54144454/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com