Android OpenAL?

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

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

Спасибо. Надеюсь, я действительно смогу порт, не став сам экспертом java. На самом деле не нравится НДК до сих пор!

Ответ 1

Теперь для звука NDK доступно несколько опций:

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

  • OpenAL Soft имеет сервер OpenSL ES в своем хозяине git (не выпущен с версии 1.13). Однако на данный момент он взломан на Android, поскольку он написан для OpenSL ES 1.1, а не 1.0.1. См. эту фиксацию для исправления.

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

Ответ 2

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

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

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

Приветствия.

Ответ 3

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.

Ответ 4

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