我目前有一个字节数组形式的PCM音频.格式是16位小端的签名.我想将它转换为Android上的一些可播放格式,最好是版本3.2或更高版本.有人建议如何做到这一点?我做了一些研究并尝试了下面的内容,但都没有成功.如果有人能提出更好的方法或指出我出错的地方,我们将不胜感激.
我尝试使用正确的音频设置创建AudioFormat,但Android不支持javax.sound.sampled库.
我也尝试将PCM数据写入wave文件,但是我遇到了所有必要的wav头信息.
我也尝试使用Android提供的AudioTrack类来播放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");
}
}
Run Code Online (Sandbox Code Playgroud)
任何建议,将不胜感激.