iPhone SDK Audio Mixer - PullRequest
       5

iPhone SDK Audio Mixer

2 голосов
/ 30 июня 2010

Что мне нужно сделать, так это уметь смешивать 4 канала звука (не из живого источника, а только предварительно записанные аудиофайлы в комплекте приложений) и изменять их громкость индивидуально, в режиме реального времени, желательно с MP3. Каков наилучший / правильный путь для меня в отношении всех различных звуковых API для iPhone?

Спасибо!

1 Ответ

1 голос
/ 07 сентября 2011

Storm Sim делает это с AVAudioPlayer, который, безусловно, является самым простым методом.Вы можете вызвать prepareToPlay для каждого из объектов игрока, а затем запустить их позже, чтобы не было никакой задержки.Я также использую пустой 1-секундный аудиопроигрыватель в вечном цикле для поддержания обратного отсчета deviceTime, поэтому вы можете использовать playAfter, чтобы в будущем задать конкретное deviceTime, чтобы все семплы воспроизводились синхронно или со смещением относительно друг друга (deviceTimeтолько галочки, если есть какой-то звук воспроизведения).AVAudioPlayerDelegate прервал / возобновил события и завершил воспроизведение, чтобы вы могли получать уведомления о происходящем.

Однако имеется только один аппаратный декодер MP3 / AAC, поэтому остальные три будут использовать процессор (и, следовательно, батарею), выполняющийрасшифровка.Если вы хотите продлить срок службы батареи, используйте файлы CAF в IMA4 @ 44100.Это примерно 1/4 размера необработанных WAV-файлов, поэтому он не так хорош, как MP3, но производительность намного лучше, особенно если вы используете много маленьких звуковых дорожек.Если вы используете голосовую связь, вы можете получить гораздо меньшую точность воспроизведения и разбить файлы еще больше.Afconvert в терминале может помочь вам получить ваши исходные файлы в формате CAF (вы должны использовать файлы CAF независимо от кодировки).

...