Mantenha o som do bluetooth ao inicializar o AVAudioSession
Estou prestes a enlouquecer.
Eu tenho um aplicativo de gravação. Estou com um problema que, quando abro o aplicativo, se estiver ouvindo música em um dispositivo bluetooth, ele é encaminhado automaticamente de volta para o alto-falante interno do telefone.
Eu quero que tudo continue igual, não importa o quê. Mesmo quando eu começar a gravar, se o usuário estiver ouvindo algo em um alto-falante bluetooth, continue fazendo isso. O usuário tem fones de ouvido? Mantenha a música lá. Apenas deixe tudo como está.
É assim que atualmente estou inicializando minha sessão:
[[AVAudioSession sharedInstance]
setCategory:AVAudioSessionCategoryPlayAndRecord
withOptions:AVAudioSessionCategoryOptionMixWithOthers | AudioSessionCategoryOptionAllowBluetooth
error: nil];
Estou permitindo que ele toque, grave, misture com outras pessoas e permita o bluetooth, então por que ele está reencaminhando a saída de áudio de volta para o alto-falante interno ???
obrigado
EDIT em 30 de maio
Eu consegui algo melhor, mas ainda faltava algo.
Se eu adicionar esta linha:
[[AVAudioSession sharedInstance] overrideOutputAudioPort:AVAudioSessionPortOverrideNone error:nil];
A música permanece no dispositivo bluetooth, mas soa horrível.
De acordo com esta resposta:https://stackoverflow.com/a/18541874/517688 é porque
EnableBluetoothInput afeta a entrada e a saída de acordo com isso. Lembre-se, o áudio será reproduzido em 8000 Hz devido à limitação dos dispositivos de entrada bluetooth
Portanto, não há como manter tudo igual sem distorcer o som ao usar um dispositivo Blueetooth?