如何为A2DP和HFP蓝牙设备配置ios应用播放音乐

时间:2018-11-20 14:15:23

标签: ios bluetooth avaudiosession a2dp hfp

我们的iOS应用程序存在问题。 我们的主要功能之一是播放音频,部分功能是,我们会自动在我们的应用程序中检查耳机是否已连接到iPhone设备(可以是蓝牙,常规耳机)

当前,所有蓝牙设备都存在音频质量非常低的问题。 我们注意到,对于每个蓝牙设备,音频回放都是通过HFP协议传输的。

我们为AVAudioSession实例尝试了各种配置,以下同时适用于Air-pods和常规Bluetooth设备的配置

    AVAudioSession *sessionInstance = [AVAudioSession sharedInstance];
NSError* theError = nil;
BOOL result = YES;
result = [sessionInstance setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionAllowBluetoothA2DP | AVAudioSessionCategoryOptionAllowBluetooth error:&theError];
if (!result)
{
    NSLog(@"setCategory failed");
}

result = [sessionInstance overrideOutputAudioPort:AVAudioSessionPortOverrideNone error:&theError];

if (!result)
{
    NSLog(@"overrideOutputAudioPort failed");
}

result = [sessionInstance setActive:YES error:&theError];
if (!result)
{
    NSLog(@"setActive failed");
}

尽管有常规蓝牙设备和Air-pods的音频,但是蓝牙设备中的音频质量(在Air-pods中是好的)确实很差。

我们尝试将类别从播放和录制更改为仅播放,但如果将其更改为播放,则所有蓝牙设备将不再自动在out应用程序中识别(因为完全没有音频)

希望在这个问题上有想法,谢谢大家

0 个答案:

没有答案