2012-07-03 44 views
33

La mia app utilizza il microfono e emette audio, quindi sto impostando la mia sessione audio sulla categoria Play and Record, ma questo sembra disabilitare Airplay. Se imposto la categoria su Play, Airplay funziona correttamente con il mio output (ma ovviamente l'input non funziona).AVAudioSessionCategoryPlayAndRecord con Airplay

Ho provato a sovrascrivere il percorso di uscita verso l'altoparlante, nel caso in cui fosse necessario eseguire l'output su Airplay, ma senza gioia.

Qualche idea?

+0

Possiamo vedere codice in cui si imposta l'Audio Session? –

risposta

0

Se si desidera modificare l'audio in uscita, è necessario chiamare AudioSessionSetProperty e passarlo specificando costantemente dove si vuole che l'audio vada. Queste costanti sono

kAudioSessionOverrideAudioRoute_None, che specifica che si desidera l'audio di essere indirizzati al ricevitore (l'airplay se è lì che sta andando), o

kAudioSessionOverrideAudioRoute_Speaker, che specifica che l'audio deve essere indirizzato al diffusore nella parte inferiore del telefono.

0

Si può provare questo codice

dispositivo
// Set AVAudioSession 
NSError *sessionError = nil; 
[[AVAudioSession sharedInstance] setDelegate:self]; 
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:&sessionError]; 

// Change the default output audio route 
UInt32 doChangeDefaultRoute = 1; 
AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, 
    sizeof(doChangeDefaultRoute), &doChangeDefaultRoute); 
+0

AudioSessionSetProperty è obsoleto – mark

3

Cosa AirPlay stai cercando di usare? Ha un microfono?

In caso contrario, iOS non lo presenterà come opzione quando si utilizza la categoria PlayAndRecord, poiché tale dispositivo non può riprodurre record e. Si mostrerebbe quando si usa la categoria Play però.

Inoltre, se il dispositivo che si sta utilizzando è un dispositivo Bluetooth, hanno impostato AVAudioSessionCategoryOptionAllowBluetooth su YES?

+0

Questa è la risposta corretta. – mark

0

Dalla Guida Programmazione Audio Session> Lavorare con le categorie>Choosing Categories and Modes for AirPlay:

Solo specifiche categorie e modalità di supporto AirPlay. Le seguenti categorie supportano entrambe le versioni a specchio e non a specchio di Airplay:

  • AVAudioSessionCategorySoloAmbient
  • AVAudioSessionCategoryAmbient
  • AVAudioSessionCategoryPlayback

La categoria AVAudioSessionCategoryPlayAndRecord supporta solo Airplay mirroring.

Problemi correlati