Android OpenAL? - PullRequest
       39

Android OpenAL?

31 голосов
/ 06 апреля 2010

Кто-нибудь создал OpenAL для Android или нашел для него разделяемую библиотеку в системе? Это кажется очевидной потребностью в игре любого рода, но ресурсов для этого нет. Похоже, что звуковая библиотека Java не может изменять высоту звука по сравнению с тем, что я могу сказать, поэтому, похоже, нужен OpenAL. Я знаю, что OpenAL Soft может быть построен поверх ALSA, но я не уверен, что кто-нибудь сделал это, и я уверен, что это займет у меня месяц.

Если есть хорошее руководство по управлению звуком на Android без OpenAL, это тоже хорошо. Просто OpenAL является своего рода стандартом для разработчиков игр, и было бы неплохо перенести мои тысячи строк на эту систему, что, как я думал, было целью NDK, прежде чем я начал копаться в нем и увидел, что почти нет доступ к общей библиотеке в системе.

Спасибо .. Я надеюсь, что смогу портировать, не становясь экспертом по Java самостоятельно. До сих пор не нравился NDK!

Ответы [ 4 ]

33 голосов
/ 22 сентября 2011

Для аудио NDK доступно несколько вариантов:

  1. Это не OpenAL, но OpenSL ES 1.0.1 является официальной частью NDK уровня API 9 (2.3). Больше информации здесь .

  2. OpenAL Soft имеет бэкэнд OpenSL ES в своем git master (не выпущен в версии 1.13). Однако в настоящее время он работает на Android, как написано для OpenSL ES 1.1, а не 1.0.1. См. этот коммит для исправления.

  3. Как упоминалось в предыдущем ответе, серверная часть JNI для OpenAL Soft связана и описана здесь как единственная опция для OpenAL на платформах Android до 2.3. Однако это устаревшая ветка OpenAL Soft - я обновил бэкэнд до последней версии на репозитории github здесь вместе с исправлением OpenSL ES 1.0.1. Также включен необязательный необязательный патч , который утверждает, что обеспечивает лучшую производительность и меньшую задержку.

8 голосов
/ 16 декабря 2010

Незадолго до того, как Google объявил, что 3D-звук будет включен в Android 2.3, мне удалось скомпилировать OpenAL для Android и упаковать его как общий объект.

См. http://pielot.org/2010/12/14/openal-on-android/

Может быть полезным, если вы хотите настроить таргетинг на устройства <2.3. </p>

Cheers.

5 голосов
/ 30 октября 2010

OpenSL планируется для будущей сборки Android; OpenAL недоступен, а низкоуровневое оборудование запрещено для всего, что вы можете делать в NDK, поэтому вы не можете безопасно собрать его самостоятельно.

Нет поддержки для аудио с низкой задержкой, даже запланированного; здесь есть ошибка на этот счет:

http://code.google.com/p/android/issues/detail?id=3434

Пометьте это, если оно имеет отношение к вам; возможно, Google будет слушать, если получит достаточно звезд.

РЕДАКТИРОВАТЬ: в Android 4.0+ есть низкое время ожидания аудио, и OpenSL теперь доступен. См. Эту страницу и связанные страницы: http://source.android.com/devices/audio/latency.html Также см. Руководство NDK по OpenSL.

0 голосов
/ 06 апреля 2010

Вы можете использовать NDK для сборки OpenAL и упаковки его с вашим APK. Таким образом, вы можете получить к нему доступ из собственного кода.

...