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?

questionAnswers(2)

yourAnswerToTheQuestion