2012-07-03 4 views
33

Мое приложение использует микрофон и выводит аудио, поэтому я устанавливаю свой сеанс аудио в категорию воспроизведения и записи, но это, похоже, отключает Airplay. Если я настрою категорию на Play, Airplay отлично работает с моим выходом (но, очевидно, вход не работает).AVAudioSessionCategoryPlayAndRecord with Airplay

Я пробовал переопределить выходной маршрут в динамик, в случае необходимости, чтобы выводить через Airplay, но без радости.

Любые идеи?

+0

Можем ли мы увидеть ваш код, где вы настраиваете аудио сессию? –

ответ

0

Если вы хотите изменить, куда идет аудио, вам нужно позвонить в AudioSessionSetProperty и передать ему константу, указывающую, куда вы хотите, чтобы звук проходил. Эти константы

kAudioSessionOverrideAudioRoute_None, который указывает, что вы хотите звук должен быть направлен на ресивера (AirPlay, если это то, где это происходит), или

kAudioSessionOverrideAudioRoute_Speaker, который указывает, что звук должен быть направлен на динамик в нижней части телефона.

0

Вы можете попробовать этот код

// 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 устарел – mark

3

Что AirPlay устройство вы пытаетесь использовать? Есть ли у него микрофон?

Если нет, iOS не представит его в качестве опции при использовании категории PlayAndRecord, поскольку это устройство не может воспроизводить записи и. Тем не менее, он будет отображаться при использовании категории Play.

Кроме того, если устройство, которое вы используете, является устройством Bluetooth, вы установили для AVAudioSessionCategoryOptionAllowBluetooth значение YES?

+0

Это правильный ответ. – mark

0

От Audio Session Руководство по программированию> Работа с Категории>Choosing Categories and Modes for AirPlay:

только определенной категории и режимы поддержки AirPlay. Следующие категории поддерживают оба зеркальные и не зеркальные версии Airplay:

  • AVAudioSessionCategorySoloAmbient
  • AVAudioSessionCategoryAmbient
  • AVAudioSessionCategoryPlayback

AVAudioSessionCategoryPlayAndRecord категории поддерживает только зеркальную Airplay.

 Смежные вопросы

  • Нет связанных вопросов^_^