Я собираюсь сойти с ума.
У меня есть приложение для записи. У меня возникла проблема: когда я открываю свое приложение, если я слушаю музыку на устройстве 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??