2

X個のオーディオファイルをインポートして1つのオーディオファイルにミックスするこのプログラムをJavaで作成しています。

例:

インポート: 「Audio1.wav」、「Audio2.wav」。
それらを混ぜます。
エクスポート: "Result.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;
}

これは、ファイルをインポートして結果を保存する方法です。

4

1 に答える 1

3

2 つのオーディオ ストリームのミキシングは、サンプルの合計を取るのと同じくらい簡単です。

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

これは、オーディオが同じサンプル サイズと周波数で LPCM でエンコードされていることを前提としています。オーディオが LPCM でない場合 (µ-law や A-law など)、非線形エンコーディングを考慮した式が必要です。サンプル サイズが異なる場合は、同じサイズに変換する必要があります。サンプル周波数が異なる場合は、再サンプルする必要があります。

于 2012-01-31T13:05:48.077 に答える