Воспроизведите аудиофайл с помощью RemoteIO и аудиоустройства - PullRequest
1 голос
/ 04 апреля 2010

Я смотрю на пример Apple «aurioTouch» для iPhone, и я хотел бы воспроизводить mp3 или wav вместо использования встроенного микрофона. Я очень новичок в аудио части программирования iPhone, но я думаю, что мне нужно изменить функцию SetupRemoteIO (...) и заменить AudioComponent с именем 'comp' на собственный AudioComponent, который воспроизводит файл. По сути, я хочу, чтобы приложение функционировало точно так же, как оригинал, но с аудиофайлом вместо микрофона.

1 Ответ

3 голосов
/ 08 июня 2010

Вам просто нужно преобразовать ваш аудиофайл в данные pcm, а затем передать эти данные в интерфейс RemoteIO во время обратного вызова воспроизведения.

Чтобы прочитать ваш аудиофайл, вам нужно использовать ExtAudioFileOpenURL и ExtAudioFileRead. Также убедитесь, что вы установили аудиоформат с помощью ExtAudioFileSetProperty для преобразования в целевой формат PCM (который должен быть упакован, целые данные PCM со знаком).

Воспроизведение просто включает ответ на обратный вызов RemoteIO (который должен быть идентичен примеру aurioTouch) и передачу ему загруженных вами данных PCM.

Единственная сложность заключается в том, что загрузка всего mp3-файла в формате PCM может занять тонну памяти. Возможно, вам придется написать ветку загрузки, чтобы вы могли оставаться в соответствии со своими требованиями к памяти, загружая только свой соответствующий фрагмент mp3.

...