Необработанные байты PCM [] В аудио на Android

В настоящее время у меня есть звук PCM в виде массива байтов. Формат подписан 16-битным прямым порядком байтов. Я хотел бы преобразовать это в какой-нибудь воспроизводимый формат на Android, желательно версии 3.2 или выше. Есть ли у кого-нибудь предложения о том, как это можно сделать? Я провел некоторое исследование и попробовал следующее ниже, но ни одно из них не увенчалось успехом. Было бы очень признательно, если бы кто-нибудь мог предложить лучший способ или указать, где я ошибся.

Я попытался создать AudioFormat с правильными настройками звука, однако Android не поддерживает библиотеку javax.sound.sampled.

Я также пытался записать данные PCM в волновой файл, но у меня возникли проблемы с получением всей необходимой информации заголовка wav.

Я также пытался использовать класс AudioTrack, предлагаемый Android, для воспроизведения данных PCM. Однако я не слышу ни звука. Вот мой метод:

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

Мы ценим любые предложения.

20
задан Jack Satriano 29 June 2012 в 19:43
поделиться