5

Ho un'app di acquisizione video e voglio essere in grado di riprodurre musica di sottofondo durante la registrazione di audio + video.AVAudioSession setCategory not working

È possibile eseguire questa operazione se si imposta la categoria AVAudioSession su PlayAndRecord in didFinishLaunchingWithOptions. Tuttavia, questo provoca un problema nell'audio ogni volta che la vista con la fotocamera entra o esce in primo piano, e apparentemente impossibile da rimuovere: https://forums.developer.apple.com/message/74778#74778

Posso vivere con il glitch se succede solo quando inizio/interrompo registrazione video, ma ciò significa che ho bisogno di cambiare la categoria AVAudioSession da Ambient a PlayAndRecord quando viene premuto un pulsante, e anche questo sembra non essere possibile.

Come modificare la categoria AVAudioSession?

ho provato questo:

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord 
           withOptions:AVAudioSessionCategoryOptionMixWithOthers 
             error:nil]; 

Ma la musica di sottofondo si interrompe quando inizia la registrazione.

A seguito di questo post: AVCaptureSession and background audio iOS 7

ho provato la disattivazione della sessione quindi impostando la categoria:

AVAudioSession *session = [AVAudioSession sharedInstance]; 
[session setActive:NO withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:&error]; 
[session setCategory:AVAudioSessionCategoryPlayAndRecord 
     withOptions:AVAudioSessionCategoryOptionMixWithOthers | AVAudioSessionCategoryOptionDefaultToSpeaker 
       error:nil]; 
[session setActive:YES error:&error]; 

Ho anche provato ad ascoltare per la AVAudioSessionRouteChangeNotification e impostando la categoria in tale gestore dopo la disattivazione della sessione. Ma la musica di sottofondo si disattiva sempre quando l'app inizia a registrare.

Perché non riesco a modificare la categoria AVAudioSession?

+0

In parole semplici, la registrazione delle app non funziona mentre la musica ... e vuoi che entrambi funzionino insieme? –

+0

sì, ma deve essere avviato in modalità Ambiente – Cbas

risposta

0

Si prega di provare questa categoria

AVAudioSessionCategoryMultiRoute

o controllare entrambe le categorie AVAudioSessionCategoryPlayAndRecord | AVAudioSessionCategoryRecord