Аудиотека для Windows, Mac и iOS? OpenAL/OpenSL

Я пишу настольную/iOS-игру с OpenGL и хочу воспроизводить аудиофайлы (mp3 или wav). Я уже работал с CoreAudio и AudioQueues, но теперь мне нужно что-то, что работает и с Windows (и, возможно, с Linux).

Я видел до сих пор:

  • OpenAL
  • OpenSL

Мне нужны только действительно базовые функции - такие как "playSound(file)" и "isPlaying(file)" - без 3D-звука, эффектов и так далее... OpenAL и OpenSL оба от khronos - так что я действительно не понимаю разницы (да , это две разные библиотеки).

Какой была бы самая простая кросс-платформенная идея? Могу ли я написать с помощью одного из них код, который одинаково работает на iPhone и настольных ПК?


person Constantin    schedule 07.08.2011    source источник
comment
Я не совсем уверен, что он такой кроссплатформенный и все, что вам нужно, но вы смотрели на fmod? У меня был большой опыт работы с этой библиотекой в ​​прошлом, когда она была еще бесплатной :-P, хотя сейчас не знаю о ценах.   -  person mtijn    schedule 08.08.2011
comment
Juce — это гораздо больше, чем аудиобиблиотека, но он имеет аудиовозможности и является кроссплатформенным rawmaterialsoftware.com/ juce.php   -  person Itamar Katz    schedule 08.08.2011
comment
OpenAL не от хроноса, только OpenSL; в этом разница. OpenAL был изобретен Loki Software и теперь принадлежит Creative Labs, которая перешла с LGPL на проприетарную. Оба имеют интерфейс, напоминающий OpenGL, однако в настоящее время более широко поддерживается только OpenAL, OpenSL на самом деле является OpenSL ES и только для встраиваемых устройств, библиотека для настольных ПК — OpenMAX AL, которая имеет идентичный интерфейс с OpenSL ES, но также предлагает гораздо больше функциональных возможностей, помимо воспроизведения и записи звука.   -  person Mecki    schedule 10.02.2012


Ответы (2)


Если вашими целевыми платформами являются Windows/Mac/iOS, то OpenAL — прекрасный выбор, поскольку он поддерживается на всех этих платформах. Место, где вам нужно будет написать кросс-платформенный код, — это то, как вы открываете и декодируете свои файлы.

person Byron    schedule 24.01.2012
comment
Я также изучаю кросс-платформенный аудио API. OpenAL — мой первый выбор. Судя по всему, он был портирован и на Android. Разрешает ли их лицензия коммерческие предприятия с закрытым исходным кодом? - person Halsafar; 30.05.2012
comment
@Halsafar лицензия OpenAl - LGPL, тогда да, вы можете - person Flavien Volken; 09.12.2013
comment
Если вы ориентируетесь на Windows/Mac/Linux/iOS/BlackBerry10/Android и не нуждаетесь в звуке с малой задержкой, OpenAL — правильный выбор. - person Sergey K.; 13.07.2015

Возможно, вы ищете SDL_audio, который загружает аудиофайл и воспроизводит его. Его API доступен на языке C и является кроссплатформенным.

person bsound    schedule 17.11.2020