Как настроить приложение ios для воспроизведения музыки как для устройств A2DP, так и для HFP Bluetooth
У нас есть проблема с нашим приложением для iOS. Одной из наших основных функций является воспроизведение аудио, и часть этого, мы автоматически проверяем в нашем приложении, подключена ли гарнитура к устройству iPhone (это может быть Bluetooth, обычная гарнитура)
В настоящее время у нас есть проблема со всеми Bluetooth-устройствами из-за очень низкого качества звука. Мы заметили, что на каждом устройстве Bluetooth воспроизведение аудио передается по протоколу 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");
}
Несмотря на то, что звук есть с обычными устройствами Bluetooth и Air-pods, качество звука на устройствах Bluetooth (в Air-pods звук хороший) действительно плохое.
Мы попытались изменить категорию с воспроизведения и записи только на воспроизведение, но если мы изменим ее на воспроизведение, все устройства Bluetooth больше не будут автоматически распознаваться в нашем приложении (как, например, при отсутствии звука).
Хотелось бы за идеи по этому вопросу, спасибо всем