相关疑难解决方法(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万
查看次数

如何在java中从字节数组中编写WAV文件?

我想从字节数组中编写Wav文件,我还想从输入wav文件中分割通道

Java Sound API显示您可以从TargetDataLine录制音乐,并作为示例显示正在写入字节数组的数据.但是将这个字节数组写入自己的文件是相当无用的,因为它不是WAV文件格式,不能在其他应用程序中播放.

如何使用javax.sound.sampled包编写声音文件?

java audio wav

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

标签 统计

java ×2

wav ×2

android ×1

audio ×1

audiorecord ×1

pcm ×1