What should be reasons to use OpenSL ES instead of AudioTrack in Android?

Alexander Kulyakhtin picture Alexander Kulyakhtin · Jun 25, 2012 · Viewed 44.2k times · Source

Currently I'm using AudioTrack passing to it audio data from native layer to play.

It seems I can use OpenSL ES in the native layer instead of AudioTrack in Java. What are the supposed advantages OpenSL ES gives as opposed to AudioTrack?

Answer

codetiger picture codetiger · Jun 26, 2012

OpenSL ES:

Advantages:

  1. Low Level Audio API in Android
  2. Device Independent on Android Phones
  3. Good for Gaming

Disadvantages:

  1. Supports only on 2.3+ os

AudioTrack:

Advantages:

  1. High Level API

Disadvantages:

  1. Works on Java layer and Native code has to call javalayer to play audio.