PCM Raw Bytes [] To Audio on Android

岁酱吖の 提交于 2019-11-30 00:14:26

http://developer.android.com/reference/android/media/AudioTrack.html

This class looks like it has exactly what you need!

write(byte[] audioData, int offsetInBytes, int sizeInBytes)

Writes the audio data to the audio hardware for playback.

EDIT

Change your stream to AudioManager.STREAM_MUSIC

vitakot

The question is whether you want to play PCM samples you receive from some source directly in the Android app or if you have some external files you need to convert. In the first case go the way as jack57 described. It is really easy and you can even add markers to have precise timing.

int bufferSize = AudioTrack.getMinBufferSize(sampleRate, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT);

AudioTrack mAudioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, sampleRate, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT, bufferSize, AudioTrack.MODE_STREAM);

mAudioTrack.play();

then call write method in a cycle:

mAudioTrack.write(buffer, 0, buffer.length);

In the second case just use some free audio editor: http://audacity.sourceforge.net/download/. You can store PCM samples as a .txt file, open it in the editor and save in a format you need...

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!