Начиная с платформы Core Audio - PullRequest
4 голосов
/ 09 июля 2010

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

Ответы [ 4 ]

6 голосов
/ 08 февраля 2011

A превью книги по Core Audio только что вышло. Я начал читать и сам, как новичок, нахожу это полезным.

У него метод преподавания в стиле преподавателя и он очень понятен в своих объяснениях. Я очень рекомендую это.

5 голосов
/ 30 сентября 2012

Хотя на вопрос уже был дан ответ. Я хотел бы добавить еще несколько советов, поскольку я несколько месяцев боролся с одной и той же проблемой:

  • Вот оченьпростой пример код, который я создал на основе примера кода в учебной аудиокниге .

  • Учебное пособие по потоковой передаче звука Matt Gallagher *1014* является обязательным ... в дополнение к отличному примеру потоковой передачи звука в реальном времени ... оно также предоставляет простой примермногопоточность ... что приводит меня к следующему ОЧЕНЬ ВАЖНОМУ пункту

  • В руководстве по параллелизму Apple .. они советуют против с использованием многопоточности ... и дают вам хосттаких предложений, как GCD и NSOperations и т. д. и т. п. НЕ ХОРОШАЯ ИДЕЯ, когда речь идет о ядре аудио ... по крайней мере, в режиме реального времени аудио. B / C аудио в реальном времени чрезвычайно чувствительны к любому виду блокировки или дорогостоящим операциям ... больше, чемВы можете себе представить (т. е. иногда даже простые операторы NSLog могут привести к прерыванию звука или даже , а не воспроизвести вообще !!) Здесь является обязательным прочтением для этой части аудио.

  • Звуковое программирование - это другой вид программирования, чем тот, к которому привыкло большинство из нас.Следовательно, не торопитесь, чтобы понять понятия .. многим из них потребуется время, чтобы погрузиться в ... например, разницу между форматом аудиофайла и форматом потокового аудио ... разница между сжатым аудио и PCM (несжатым) аудио.. примеров предостаточно.

  • Один ключевой момент, который мне потребовался для понимания: доступ к аудиофайлам в библиотеке iPad ... единственный способ их прочитать - это методы API AVAssetReader .. не через другие API, такие как AudioFileReadPackets и т. д. (хотя, если вы сохраняете файл вручную в своем проекте ... тогда вы можете) .. AVAssetReader намного менее удобен для пользователя, чем другой API ... но однажды концепцииосновного звукового приемника в ... вы не найдете большой разницы .. Мой пример использует AVAssetReader

  • Смотрите обсуждение, которое я имел с Джастин здесь .. в нем вы увидите множество ловушек, в которые я попал, и вы поймете, как их избежать.Помните, особенно с Core Audio ... речь идет не о том, чтобы решить, как решить проблему, а о том, какую проблему решить в первую очередь.

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

1 голос
/ 05 мая 2011

Я написал некоторый пример кода, потратив долгое время, пытаясь выяснить проблему, подобную вашей.

Пример кода позволяет пользователю выбрать песню из своей библиотеки iPod, затем он создает несжатый файл (LPCM) копия файла (используя AVAssetReader / AVAssetWriter) и воспроизводит его с помощью AudioUnit (который является частью CoreAudio).

Если вы хотите воспроизвести произвольный файл, просто удалите биты моего кода, которыесоздайте несжатую копию (ищите AVAssetReader / AVAssetWriter) и вместо этого укажите класс на другой файл песни.

0 голосов
/ 09 июля 2010

http://www.libsdl.org/

я думаю, что по вашим требованиям вы можете получить лучшую поддержку по ссылке выше

...