gpt4 book ai didi

java - 如何在java中转换wav文件

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:20:52 25 4
gpt4 key购买 nike

如何在java中转换wav文件

AudioFormat targetFormat = new AudioFormat(
sourceFormat.getEncoding(),
fTargetFrameRate,
16,
sourceFormat.getChannels(),
sourceFormat.getFrameSize(),
fTargetFrameRate,
false);

结果异常:

java.lang.IllegalArgumentException: Unsupported conversion: 
ULAW 8000.0 Hz, **16 bit**, mono, 1 bytes/frame, **from** ULAW 8000.0 Hz, **8 bit**, mono, 1 bytes/frame

在java中可以吗?

我需要从 8 获取 16 位的 wav 文件

最佳答案

这是一种使用内置 Java 方法将 8 位 uLaw 编码的二进制文件转换为 16 位 WAV 文件的方法。

public static void convertULawFileToWav(String filename) {
File file = new File(filename);
if (!file.exists())
return;
try {
long fileSize = file.length();
int frameSize = 160;
long numFrames = fileSize / frameSize;
AudioFormat audioFormat = new AudioFormat(Encoding.ULAW, 8000, 8, 1, frameSize, 50, true);
AudioInputStream audioInputStream = new AudioInputStream(new FileInputStream(file), audioFormat, numFrames);
AudioSystem.write(audioInputStream, Type.WAVE, new File("C:\\file.wav"));
} catch (IOException e) {
e.printStackTrace();
}
}

关于java - 如何在java中转换wav文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12586949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com