Подстройка аудио сеанса для проигрывателей

Проигрыватели фильмов позволяют Вам проигрывать фильмы от файла или сетевого потока. Аудиоплееры позволяют Вам играть звуковое содержимое от музыкальной библиотеки пользователя. Для использования этих объектов при взаимодействии с аудио приложения рассмотрите их аудио характеристики сеанса.

Работа с аудиоплеерами

Для игры аудио от музыкальной библиотеки пользователя вместе с собственными звуками (как описано в Руководстве по программированию Библиотечного доступа iPod) Вы используете AVAudioSessionCategoryAmbient категория, так называемая mixable конфигурация категории для Вашего аудио сеанса, или AVAudioSessionCategoryOptionMixWithOthers опция с совместимой категорией. Используя эту категорию гарантирует, что Ваши звуки не прервут аудиоплеер — и при этом звуки аудиоплеера не прервут Ваши.

Система автоматически обрабатывает изменения маршрута и прерывания для аудиоплееров. Вы не можете влиять на это встроенное поведение. Пока Вы правильно управляете аудио сеансом своего приложения, как описано здесь и в предыдущих главах, можно полагаться на аудиоплеер, чтобы заботиться о себе, поскольку пользователь включает гарнитуру, звуки аварийного сигнала, или телефонный вызов поступает.

Можно сконфигурировать аудио сеанс так, чтобы звук от аудиоплеера нырнул (понижается в объеме), когда играет аудио из приложения. Для получения дополнительной информации при нырянии и как включить его, посмотрите Подстройку Категории.

Для описания класса аудиоплеера посмотрите Ссылку класса MPMusicPlayerController.

Работа с проигрывателями фильмов

По умолчанию проигрыватель фильмов совместно использует аудио сеанс Вашего приложения. В действительности проигрыватель фильмов превышает понятие смешивания с аудио Вашего приложения; аудио проигрывателя фильмов ведет себя, как будто оно принадлежит Вашему приложению. Независимо от того, которые воспроизводят категорию, которую Вы выбираете, и независимо от того как Вы конфигурируете ту категорию, Ваше аудио и аудио проигрывателя фильмов никогда не прерывают друг друга.

Совместное использование Вашего аудио сеанса также дает Вам контроль над тем, как фильм взаимодействует с аудио из других приложений, таких как Музыкальное приложение. Например, если Вы устанавливаете свою категорию в AVAudioSessionCategoryAmbient и совместно используйте свой сеанс, Музыкальное аудио не прервано, когда фильм запускается в Вашем приложении. Совместное использование Вашего аудио сеанса также позволяет Вам указать, повинуется ли аудио фильма переключателю Ring/Silent.

Для конфигурирования аудио поведения для фильма определите поведение, Вы хотите и затем выполняете надлежащую аудио конфигурацию сеанса, как описано в Таблице 6-1. Для получения дополнительной информации при установке Вашего аудио сеанса, посмотрите Определение Аудио Сеанса.

Таблица 6-1  , Конфигурирующая аудио сеансы при использовании проигрывателя фильмов

Желаемое поведение

Аудио конфигурация сеанса

Проигрывание фильма заставляет все другое аудио замолчать

  • Если Ваше приложение не играет аудио, не конфигурируйте аудио сеанс.

  • Если Ваше приложение действительно играет аудио, конфигурирует аудио сеанс и устанавливает его возможность соединения согласно тому, хотите ли Вы смешаться с Музыкальным приложением и другим аудио.

  • В любом случае скажите проигрывателю фильмов использовать свой собственный аудио сеанс:

    myMoviePlayer.useappAudioSession = NO

Соединение аудио фильма и приложения, но другое аудио, включая Музыкальное приложение, заставлено замолчать

  • Сконфигурируйте аудио сеанс с помощью non-mixable категории.

  • Используйте в своих интересах значение по умолчанию проигрывателя фильмов useApplicationAudioSession значение YES.

Все аудио смеси

  • Сконфигурируйте аудио сеанс с помощью mixable конфигурации категории.

  • Используйте в своих интересах значение по умолчанию проигрывателя фильмов useApplicationAudioSession значение YES.

Управляйте аудио сеансом своего приложения, как обычно, с точки зрения изменений маршрута и прерываний, как описано в Ответе на Изменения маршрута и Ответе на Прерывания. Позвольте нырнуть при желании, как описано в Подстройке Категории.

При конфигурировании проигрывателя фильмов для использования его собственного аудио сеанса, существует некоторая очистка для выполнения. Для восстановления возможности проигрывателя фильмов играть аудио после, фильм заканчивается, или пользователь отклоняет его:

  1. Избавьтесь от проигрывателя фильмов — даже если Вы намереваетесь проигрывать тот же фильм снова позже.

  2. Повторно активируйте свой аудио сеанс.

Для описания класса проигрывателя фильмов посмотрите Ссылку класса MPMoviePlayerController.

Используя платформу медиапроигрывателя исключительно

Если Ваше приложение использует проигрыватель фильмов только или аудиоплеер только — и Вы не играете свои собственные звуки — тогда Вы не должны конфигурировать аудио сеанс.

При использовании проигрывателя фильмов исключительно необходимо сказать ему использовать свой собственный аудио сеанс, следующим образом:

myMoviePlayer.useappAudioSession = NO

Если Вы используете проигрыватель фильмов и аудиоплеер, то Вы, вероятно, хотите сконфигурировать, как взаимодействуют эти два; для этого необходимо сконфигурировать аудио сеанс, даже при том, что Вы не играете аудио приложения по сути. Используйте руководство в Таблице 6-1.