Bytes brutos de PCM [] para áudio no Android

Atualmente, tenho um áudio PCM na forma de uma matriz de bytes. O formato é assinado 16 bit little endian. Eu gostaria de converter isso para algum formato jogável no Android, de preferência a versão 3.2 ou superior. Alguém tem sugestões sobre como isso pode ser feito? Eu fiz alguma pesquisa e tentei o seguinte abaixo, mas nenhum foi bem sucedido. Seria muito apreciado se alguém pudesse sugerir uma maneira melhor ou indicar onde eu errei.

Eu tentei criar um AudioFormat com as configurações de áudio corretas, no entanto, o Android não suporta a biblioteca javax.sound.sampled.

Eu também tentei gravar os dados PCM em um arquivo wave, mas estou tendo problemas para obter todas as informações necessárias do cabeçalho wav.

Eu também tentei usar a classe AudioTrack oferecida pelo Android para reproduzir os dados PCM. No entanto, parece que não consigo ouvir nenhum som. Aqui está o meu método:

    public void playback(){
         try{
              AudioTrack audioTrack = new  AudioTrack(AudioManager.STREAM_VOICE_CALL, 8000, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, 500000, AudioTrack.MODE_STATIC);
              audioTrack.write(audio, 0, 500000);

      } catch(Throwable t){
        Log.d("Audio","Playback Failed");
    }
}

Qualquer sugestão seria apreciada.

questionAnswers(2)

yourAnswerToTheQuestion