我目前有一个以字节数组形式表示的PCM音频。格式为有符号16位小端。我想将其转换为可在Android上播放的格式,最好是3.2或更高版本。是否有人有建议如何完成此操作?我已经做了一些研究并尝试了以下方法,但都没有成功。如果有人可以建议更好的方式或指出我哪里错了,将不胜感激。
我尝试创建具有正确音频设置的AudioFormat,但是Android不支持javax.sound.sampled库。
我还尝试将PCM数据写入波形文件,但遇到了问题,无法获取所有必要的wav头信息。
我还尝试使用Android提供的AudioTrack类来播放PCM数据。但是,我似乎听不到任何声音。以下是我的方法:
我尝试创建具有正确音频设置的AudioFormat,但是Android不支持javax.sound.sampled库。
我还尝试将PCM数据写入波形文件,但遇到了问题,无法获取所有必要的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");
}
}
有任何建议都将不胜感激。