PCM Raw Bytes [] для аудио на 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");
}
}
Мы ценим любые предложения.