Android开发中pcm格式的音频转换为wav格式之二

2023-12-19 23:12:40

上篇Android开发中pcm格式的音频转换为wav格式的工具类-CSDN博客文章讲解了pcm格式的音频转换为wav格式,这篇文章主要讲解怎么使用:

我们先来说明一下怎么播放一个wav文件

    /**
     * 播放一个wav文件
     */
    public static void playWav(String filePath){
        File wavFile = new File( filePath);
//        Log.e("timo-111",wavFile);
        try{
            FileInputStream fis=new FileInputStream(wavFile);
            byte[] buffer=new byte[1024*1024*2];//2M
            int len=fis.read(buffer);
            Log.e(TAG, "fis len="+len);
            Log.e(TAG, "0:"+(char)buffer[0]);
            int pcmlen=0;
            pcmlen+=buffer[0x2b];
            pcmlen=pcmlen*256+buffer[0x2a];
            pcmlen=pcmlen*256+buffer[0x29];
            pcmlen=pcmlen*256+buffer[0x28];

            int channel=buffer[0x17];
            channel=channel*256+buffer[0x16];

            int bits=buffer[0x23];
            bits=bits*256+buffer[0x22];
            Log.e(TAG, "pcmlen="+pcmlen+",channel="+channel+",bits="+bits);
            AudioTrack at = new AudioTrack(AudioManager.STREAM_MUSIC,
                    SAMPLE_RATE_INHZ*2,
                    channel,
                    AudioFormat.ENCODING_PCM_16BIT,
                    pcmlen,
                    AudioTrack.MODE_STATIC);
            at.write(buffer, 0x2C, pcmlen);

            at.play();

        }
        catch(Exception e){
            Log.e(TAG, e.toString());
        }
        finally{
            wavFile = null;
        }
    }

下面,在使用的地方具体使用:

先将.pcm文件转为.wav文件:
startRecordAudio为源文件(即存储的.pcm的录音文件)
wavFilePath为.pcm转.wav文件 
true:是否删除源文件
PcmToWavUtil ptwUtil = new PcmToWavUtil();
ptwUtil.pcmToWav(startRecordAudio, wavFilePath,true);

以上处理完理之后,再调用:

playWav(wavFilePath)

以上就是讲解的具体的使用方法和说明。

文章来源:https://blog.csdn.net/qq_36451275/article/details/135058254
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。