2012-06-25 58 views
9

Actualmente estoy usando AudioTrack pasándole datos de audio de la capa nativa para jugar.¿Cuáles deberían ser las razones para usar OpenSL ES en lugar de AudioTrack en Android?

Parece que puedo usar OpenSL ES en la capa nativa en lugar de AudioTrack en Java. ¿Cuáles son las supuestas ventajas que ofrece OpenSL ES en comparación con AudioTrack?

+0

Supongo que las ventajas provienen principalmente de la portabilidad. Asumiendo que otros sistemas operativos también admiten OpenSL ES. – harism

Respuesta

7

opensl es:

Ventajas:

    API
  1. bajo nivel de audio en Android
  2. independiente del dispositivo en los teléfonos Android
  3. Ideal para jugar

Desventajas:

  1. sólo es compatible con el OS 2.3 +

Audiotrack:

Ventajas:

  1. alto nivel de la API

Desventajas:

  1. Funciona en la capa Java y el código nativo tiene que llamar a javalayer para reproducir audio .
+0

Gracias. ¿Cómo se refiere a "dispositivo independiente" y "bueno para jugar" podría, por favor, elaborar un poco o darme un enlace? –

+0

Con OpenSL ES, usted codifica todo en la biblioteca nativa y no necesita llamar a la capa Java para audio, lo que agrega algunas ventajas de rendimiento en Gaming. Y es más independiente de la plataforma que cualquier otra API en Android. – codetiger

+2

Como OpenSL ES es una C API nativa, los subprocesos de aplicación no Dalvik que llaman a OpenSL ES no tienen sobrecarga relacionada con Dalvik, como pausas de recolección de basura. Sin embargo, no hay ningún beneficio de rendimiento adicional para el uso de OpenSL ES aparte de esto. En particular, el uso de OpenSL ES no da como resultado una latencia de audio menor, una mayor prioridad de programación, etc. que lo que la plataforma generalmente proporciona. desde: http://mobilepearls.com/labs/native-android-api/opensles/index.html – codetiger

Cuestiones relacionadas