PCM Raw Bytes [] To Audio na Androida

Obecnie mam dźwięk PCM w postaci tablicy bajtów. Format jest podpisany 16-bitowym małym endianem. Chciałbym przekonwertować to na jakiś możliwy do odtworzenia format na Androida, najlepiej w wersji 3.2 lub wyższej. Czy ktoś ma sugestie, jak można to zrobić? Zrobiłem kilka badań i wypróbowałem poniższe, ale żaden z nich nie powiódł się. Byłoby bardzo mile widziane, gdyby ktoś mógł zasugerować lepszy sposób lub wskazać, gdzie poszedłem źle.

Próbowałem utworzyć format AudioFormat z poprawnymi ustawieniami audio, jednak Android nie obsługuje biblioteki javax.sound.sampled.

Próbowałem także zapisać dane PCM w pliku wave, ale napotykam problemy z uzyskaniem wszystkich niezbędnych informacji nagłówka wav.

Próbowałem również użyć klasy AudioTrack oferowanej przez Androida do odtwarzania danych PCM. Nie słyszę jednak żadnego dźwięku. Oto moja metoda:

    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");
    }
}

Wszelkie sugestie będą mile widziane.

questionAnswers(2)

yourAnswerToTheQuestion