相关疑难解决方法(0)

将PCM记录的数据写入.wav文件(java android)

我正在使用AudioRecord在android中记录16位PCM数据.记录数据并将其保存到文件后,我将其读回以将其另存为.wav文件.

问题在于WAV文件被媒体播放器识别,但只能播放纯粹的噪音.我现在最好的猜测是我的wav文件头不正确,但我一直无法确定问题到底是什么.(我想这是因为我可以播放我在Audacity录制的原始PCM数据)

这是我的代码,用于读取原始PCM文件并将其保存为.wav:

private void properWAV(File fileToConvert, float newRecordingID){
    try {
        long mySubChunk1Size = 16;
        int myBitsPerSample= 16;
        int myFormat = 1;
        long myChannels = 1;
        long mySampleRate = 22100;
        long myByteRate = mySampleRate * myChannels * myBitsPerSample/8;
        int myBlockAlign = (int) (myChannels * myBitsPerSample/8);

        byte[] clipData = getBytesFromFile(fileToConvert);

        long myDataSize = clipData.length;
        long myChunk2Size =  myDataSize * myChannels * myBitsPerSample/8;
        long myChunkSize = 36 + myChunk2Size;

        OutputStream os;        
        os = new FileOutputStream(new File("/sdcard/onefile/assessor/OneFile_Audio_"+ newRecordingID+".wav"));
        BufferedOutputStream bos = new BufferedOutputStream(os); …
Run Code Online (Sandbox Code Playgroud)

java android wav pcm audiorecord

35
推荐指数
2
解决办法
3万
查看次数

标签 统计

android ×1

audiorecord ×1

java ×1

pcm ×1

wav ×1