AVAudioSession - Различия между AVAudioSessionPortOverrideSpeaker и объясненным AVAudioSessionCategoryOptionDefaultToSpeaker
Q: Можете Вы объяснять различие между вызовом метода AVAudioSession overrideOutputAudioPort: со значением AVAudioSessionPortOverrideSpeaker и использование опции категории AVAudioSessionCategoryOptionDefaultToSpeaker с setCategory:withOptions:error:.
A: Различием является та установка AVAudioSessionPortOverride путем вызова overrideOutputAudioPort: больше переходного процесса, чем использование опции категории AVAudioSessionCategoryOptionDefaultToSpeaker.
Вызов overrideOutputAudioPort: и установка AVAudioSessionPortOverride к AVAudioSessionPortOverrideSpeaker способ временного переопределения вывода для игры динамику. Любое изменение маршрута или прерывание заставят аудио быть направленным назад к его обычному маршруту, после последнего - в правиле побед. Думайте об использовании overrideOutputAudioPort: с точки зрения какого Вы могли бы использовать для реализации Кнопки громкоговорителя, где Вы хотите быть в состоянии переключиться между динамиком (AVAudioSessionPortOverrideSpeaker) и нормальный выходной маршрут (AVAudioSessionPortOverrideNone).
Предпочтительный способ реализовать функциональность Спикерфона состоит в том, чтобы использовать MPVolumeViewкнопка Route.
Напротив, AVAudioSessionCategoryOptionDefaultToSpeaker изменяет поведение маршрутизации AVAudioSessionCategoryPlayAndRecord категория так, чтобы аудио всегда направило к динамику, а не получателю, если не будет использоваться никакой другой аксессуар, такой как наушники.
При использовании AVAudioSessionCategoryOptionDefaultToSpeaker, пользовательские жесты будут соблюдать. Например, включение гарнитуры заставит маршрут изменяться на микрометр/наушники гарнитуры, и отключение гарнитуры заставит маршрут изменяться на встроенный микрометр/динамик (в противоположность встроенному микрометру/получателю), когда было установлено это переопределение.
В случае использования USB аксессуар только для ввода аудиовход прибыл бы из аксессуара и вывел бы, направит к наушникам (если присоединено) или динамик, если не будут включены наушники. Вариант использования должен просто направить аудио динамику вместо получателя в случаях, куда аудио обычно переходило бы к получателю. Эта опция является модификатором для категории.
Изменения маршрута и прерывания не сбросят это переопределение. Только изменение AVAudioSession категория заставит эту опцию быть сброшенной.
История версии документа
| Дата | Примечания |
|---|---|
| 11.09.2013 | Обновленный для AVAudioSession |
| 20.09.2011 | Новый документ, обсуждающий различие между использованием порта, переопределяет опция AVAudioSessionCategoryOptionDefaultToSpeaker категории и AVAudioSessionPortOverrideSpeaker. |