Аудио библиотека C ++ для многоцелевого использования платформы (iPhone, Android ...) - PullRequest
2 голосов
/ 16 июня 2011

Я пытаюсь создать движок C ++, который будет читать mp3-файл, и делать некоторые масштабирование / трансляцию изображения в зависимости от времени чтения звукового файла.Я думаю, что я мог бы использовать OpenGL ES для рендеринга того, что я хочу, и вызывая некоторые инструкции OpenGL ES в моих файлах C ++, и инициировать мой контекст рисования в Obj-C / Java.Я хочу сделать то же самое для звука, но я действительно не знаю, что использовать, и если я действительно могу сделать это или нет в C ++.

Я искал библиотеку, поэтому я нашел Bass и Fmod (который не является бесплатным для коммерческого использования).Они сказали, что это мульти-кроссовая платформа (Windows, Unix, MacOS), но я не понимаю, подходит ли она для мобильных устройств, и могу ли я реально ее использовать.Кто-нибудь прошел через это?Вы рекомендуете мне еще одну бесплатную библиотеку?

Еще раз спасибо, и я прошу прощения за мой плохой английский,

Арно

Ответы [ 4 ]

5 голосов
/ 17 июня 2011

Взгляните на libpd (Pure Data для встроенных приложений)

http://download.puredata.info/libpd (библиотека была выпущена совсем недавно, но код действительно очень зрелый)

http://createdigitalmusic.com/2010/10/libpd-put-pure-data-in-your-app-on-an-iphone-or-android-and-everywhere-free/

1 голос
/ 16 июня 2011

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

В течение многих лет я использовал FMOD в различных коммерческих проектах для ПК, Mac и iPhone, и мне всегда это нравилось - но это не бесплатно. OpenAL всегда казался сорта, я не знаю: clunky? Но вам нужно иметь дело только с этим при написании уровня API, и код вашего приложения никогда не должен его видеть.

Мне легко сказать «напиши свой собственный API», так как я пишу коммерческие игры в течение 20 лет и поэтому знаю, как, по моему мнению, должен выглядеть аудио API. Если у вас нет собственного представления о том, как, по вашему мнению, это должно быть, то я предлагаю вам взглянуть на стороннюю библиотеку, которая имеет для вас смысл, и взять из нее функции, которые вы будете использовать, и написать свой собственный API для набор функций, которые ничего не делают, кроме как вызывают их.

Поскольку у вас есть и OpenAL, и FMOD, доступные вам бесплатно для разработки, вы можете затем заставить свой API работать с обоими, и есть вероятность, что тогда он будет работать со всем, с чем вы можете столкнуться.

0 голосов
/ 12 августа 2011

Если вы ищете только аудио вход / выход PCM (а не декодирование MP3), попробуйте PortAudio или RTAudio RtAudio или PortAudio, какой из них использовать?

0 голосов
/ 16 июня 2011

OpenAL может быть вашей лучшей ставкой.Посмотрите на этот ответ: Android OpenAL?

Кажется возможным скомпилировать OpenAL на Android.

...