gpt4 book ai didi

java - 在 Java 中混合音频文件

转载 作者:行者123 更新时间:2023-11-30 04:54:15 24 4
gpt4 key购买 nike

我正在用 Java 创建这个程序,导入 X 个音频文件并将它们混合在 1 个音频文件中。

示例:

导入:“Audio1.wav”、“Audio2.wav”。
混合它们。
导出:“结果.wav”

到目前为止,我已经有了导入和导出方法,我的问题是将文件混合到 1 个文件中。

编辑: 一些代码。

private static File openDialog(){
JFileChooser open = new JFileChooser();
int returnVal = open.showOpenDialog(open);
if (returnVal == JFileChooser.APPROVE_OPTION){
return open.getSelectedFile();
}
return open.getSelectedFile();
}
private static File saveDialog(){
JFileChooser save = new JFileChooser();
FileFilter filter = new FileNameExtensionFilter("Audio files", ".wav");
save.setFileFilter(filter);
//save.addChoosableFileFilter(new AudioFilter());
int returnVal = save.showSaveDialog(save);
if (returnVal == JFileChooser.APPROVE_OPTION){
return save.getSelectedFile();
}
return save.getSelectedFile();
}

private static List<File> importFile(File file){
files.add(file);
audioElements();
return files;
}

这就是我导入文件并保存结果的方式。

最佳答案

混合两个音频流就像获取样本之和一样简单,即

result[i] = audio1[i] + audio2[i];

假设音频以 LPCM 编码,具有相同的样本大小和频率。如果音频不是 LPCM(如 µ 律或 A 律),您需要一个考虑非线性编码的公式。如果样本大小不同,则必须转换为相同大小。如果采样频率不同,您必须重新采样。

关于java - 在 Java 中混合音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9079900/

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