近期使用AudioTrack播放wav文件的时候出现开头爆音的现象,分析后得知wav文件有个44或46字节的头数据,在使用AudioTrack播放写入数据时要把这个头数据去掉即可。源码实例如下:
private static final int STREAM_TYPE = AudioManager.STREAM_MUSIC;//音频流类型
private static final int SAMPLERATE_HZ = 16000;//采样率
private static final int CHANNEL_CONFIG = AudioFormat.CHANNEL_CONFIGURATION_MONO;//捕获音频的声道数目
private static final int AUDIO_FORMAT = AudioFormat.ENCODING_PCM_16BIT;//音频量化位,脉冲编码调制
/**
* 启动播放
* @param voicename
*/
boolean isWriteData = false;//是否正在读取音频数据
public void startPlay(String filepath) {
Log.i(TAG, "startPlay:" + filepath);
stopPlay();
isStopPlay = false;
try {
// //AudioTrack未初始化
// if(mAudioTrack.getState() == AudioTrack.STATE_UNINITIALIZED) {
// throw new RuntimeException("The AudioTrack is not uni