Сохраняйте звук Bluetooth при инициализации AVAudioSession
Я собираюсь сойти с ума.
У меня есть приложение для записи. У меня проблема с тем, что при открытии приложения, если я слушаю музыку на устройстве Bluetooth, оно автоматически перенаправляется обратно на внутренний динамик телефона.
Я хочу, чтобы все оставалось прежним, несмотря ни на что. Даже когда я начинаю запись, если пользователь что-то слушает через динамик Bluetooth, продолжайте делать это. У пользователя есть наушники? Держи музыку там. Просто оставь все как есть.
Вот как я сейчас инициализирую свою сессию:
[[AVAudioSession sharedInstance]
setCategory:AVAudioSessionCategoryPlayAndRecord
withOptions:AVAudioSessionCategoryOptionMixWithOthers | AudioSessionCategoryOptionAllowBluetooth
error: nil];
Я позволяю ему воспроизводить, записывать, микшировать с другими и разрешать Bluetooth, так почему же он перенаправляет аудиовыход обратно на внутренний динамик ???
Спасибо
РЕДАКТИРОВАТЬ 30 мая
Мне удалось получить что-то лучше, но все еще чего-то не хватало.
Если я добавлю эту строку:
[[AVAudioSession sharedInstance] overrideOutputAudioPort:AVAudioSessionPortOverrideNone error:nil];
Музыка остается в устройстве Bluetooth, но это звучит ужасно.
Согласно этому ответу:https://stackoverflow.com/a/18541874/517688 это потому что
EnableBluetoothInput влияет на вход и выход в соответствии с этим. Также помните, что звук будет воспроизводиться с частотой 8000 Гц из-за ограничений устройств ввода Bluetooth
Таким образом, при использовании устройства Bluetooth не существует способа сохранить все без изменений в звуке.