34 votes

AVAudioSessionCategoryPlayAndRecord avec Airplay

Mon application utilise le microphone et sorties audio, donc je suis en train de ma Session Audio pour la lecture et l'Enregistrement de la Catégorie, mais cela semble pour désactiver Airplay. Si j'ai mis de la catégorie à Jouer, Airplay fonctionne très bien avec mon sortie (mais, évidemment, l'entrée ne fonctionne pas).

J'ai essayé de substitution de la sortie de route de haut-parleur, en cas de besoin pour la production au fil Airplay, mais pas de joie.

Des idées?

3voto

Jonathan Arbogast Points 4852

Ce périphérique AirPlay sont que vous essayez d'utiliser? Il est équipé d'un microphone?

Si non, iOS ne le présente pas comme une option lors de l'utilisation de la PlayAndRecord catégorie, parce que l'appareil ne peut pas jouer et enregistrer. Il apparaîtra lors de l'utilisation du Jeu de la catégorie de bien.

Aussi, si l'appareil que vous utilisez est un appareil Bluetooth, avez-vous mis AVAudioSessionCategoryOptionAllowbluetooth OUI?

0voto

Cameron Points 223

Si vous souhaitez modifier l'emplacement de l'audio va vous besoin d'appeler AudioSessionSetProperty, et de le transmettre à la constante de spécifier où vous voulez que l'audio à partir. Ces constantes sont

kAudioSessionOverrideAudioRoute_none, ce qui indique que vous souhaitez que l'audio afin d'être acheminés vers le récepteur (la radio si c'est là que ça se passe), ou

kAudioSessionOverrideAudioRoute_speaker, qui spécifie que les données audio doivent être acheminés vers le haut-parleur au bas du téléphone.

0voto

Karthick Points 267

Vous pouvez tester ce code

// 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);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X