使用AudioTrack播放wav文件

本文介绍了在Android中使用AudioTrack播放wav文件时遇到的开头爆音问题,分析原因是wav文件的44或46字节头数据导致的。通过在写入数据时忽略这些头数据,可以成功解决此问题。示例代码展示了具体实现方法。
摘要由CSDN通过智能技术生成

    近期使用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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值