android audio android-ndk openal alsa

Android OpenAL?



audio android-ndk (4)

Algunas opciones están disponibles ahora para el audio NDK:

  1. No es OpenAL, pero OpenSL ES 1.0.1 es una parte oficial del NDK a partir del API nivel 9 (2.3). Más información here .

  2. OpenAL Soft tiene un backend de OpenSL ES en su maestro de git (no lanzado a partir de la versión 1.13). Sin embargo, en este momento está roto en Android, ya que está escrito para OpenSL ES 1.1, no 1.0.1. Ver este compromiso para una solución.

  3. Como se mencionó en una respuesta anterior, un backend JNI para OpenAL Soft está vinculado y descrito here como la única opción para OpenAL en plataformas Android anteriores a 2.3. Sin embargo, este es un fork desactualizado de OpenAL Soft - He actualizado el backend a la última versión en un repositorio github aquí junto con la corrección OpenSL ES 1.0.1. También se incluye un parche opcional no probado que pretende proporcionar un mejor rendimiento y menos latencia.

¿Alguien ha construido OpenAL para Android, o ha encontrado la biblioteca compartida para él en el sistema? Esto parece una necesidad obvia para un juego de cualquier tipo, sin embargo, no hay recursos para eso. Parece que la biblioteca de sonido de Android java no puede hacer cambios de tono a partir de lo que puedo decir, por lo que parece que hay una necesidad de OpenAL. Sé que OpenAL Soft se puede construir sobre ALSA, pero no estoy seguro de si alguien lo hizo, y estoy seguro de que me llevaría un mes.

Si hay una buena guía en algún lugar sobre la manipulación del sonido en el Android sin OpenAL, está bien también. Es solo que OpenAL es una especie de estándar para los creadores de juegos y sería bueno transferir mis miles de líneas a este sistema, que en cierto modo pensé que era el objetivo del NDK antes de que me metiera en él y vi que casi no hay Acceso compartido a la biblioteca en el sistema.

Gracias. Espero poder exportar sin convertirme en un experto en Java. Realmente no me gusta el NDK hasta ahora!


Justo antes de que Google anunciara que el audio 3D se incluiría en Android 2.3, logré compilar OpenAL para Android y empacarlo como objeto compartido.

Ver here

Podría ser útil si desea orientar dispositivos <2.3.

Aclamaciones.


OpenSL está planificado para una futura versión de Android; OpenAL no está disponible, y el hardware de bajo nivel está fuera de los límites de todo lo que pueda hacer en el NDK, por lo que no puede construirlo con seguridad.

No hay soporte para audio de baja latencia, incluso planeado; hay un error a ese efecto aquí:

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

Destaca si es relevante para ti; tal vez Google escuchará si obtiene suficientes estrellas.

EDITAR: HAY audio de baja latencia en Android 4.0+, y OpenSL ya está disponible. Consulte esta página y las páginas enlazadas: http://source.android.com/devices/audio/latency.html También vea la guía NDK en OpenSL.


Puede usar el NDK para compilar OpenAL y empaquetarlo con su APK. De esa forma puedes acceder desde tu código nativo.