Стандартный способ добавления звука в приложение для iPhone (индикатор глобальной громкости) - PullRequest
1 голос
/ 20 июля 2009

У меня есть приложение с различными видами. В главном меню нет звуков, но в следующих представлениях звуки воспроизводятся с использованием класса AVAudioPlayer.

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

Есть ли способ заставить их изменять громкость приложения каждый раз, с начала моего приложения, до того, как я создам какие-либо экземпляры AVAudioPlayer ?? (некоторые неправильно поняли это. Я имею в виду тот квадрат, который ОС накладывает на экран при каждом нажатии кнопок громкости. Если вы находитесь на главном экране, вы меняете «Звонок». Когда вы находитесь в игре, вы меняете объем приложения).

PS: Я инициализирую AudioSession в моем главном меню, но это не имеет значения. Единственный хак , который я обнаружил, - это на самом деле создать экземпляр AVAudioPlayer в моем главном меню и установить его в «prepareToPlay». Но я бы лучше услышал, что делают другие (правильное решение).

Ответы [ 2 ]

1 голос
/ 21 июля 2009

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

Кажется, что вы должны быть в состоянии сделать то, что вы хотите, изменив свойства AudioSession, но я не понял, как (если это возможно).

0 голосов
/ 20 июля 2009

Существует класс MPVolumeView, который используется для этой цели. Вот хорошая ссылка, объясняющая использование MPVolumeView

Добавление MPVolumeView к вашему виду создаст слайдер громкости, похожий на iPod, который будет меняться при изменении громкости с помощью кнопок-переключателей. Это значение будет автоматически использоваться классом AVAudioPlayer.

Для отслеживания громкости без ползунка

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...