Присоединиться к двум файлам WAV от Java?

Что самый простой путь состоит в том, чтобы связать два файла WAV в Java 1.6? (Равная частота и все, ничто не полагает.)

(Это, вероятно, sooo просто, но мой Google-fu кажется слабым на этом предмете сегодня.)

15
задан hendrik 16 July 2019 в 16:33
поделиться

4 ответа

Вот базовый код:

import java.io.File;
import java.io.IOException;
import java.io.SequenceInputStream;
import javax.sound.sampled.AudioFileFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;

public class WavAppender {
    public static void main(String[] args) {
        String wavFile1 = "D:\\wav1.wav";
        String wavFile2 = "D:\\wav2.wav";

        try {
            AudioInputStream clip1 = AudioSystem.getAudioInputStream(new File(wavFile1));
            AudioInputStream clip2 = AudioSystem.getAudioInputStream(new File(wavFile2));

            AudioInputStream appendedFiles = 
                            new AudioInputStream(
                                new SequenceInputStream(clip1, clip2),     
                                clip1.getFormat(), 
                                clip1.getFrameLength() + clip2.getFrameLength());

            AudioSystem.write(appendedFiles, 
                            AudioFileFormat.Type.WAVE, 
                            new File("D:\\wavAppended.wav"));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
36
ответ дан 1 December 2019 в 00:37
поделиться

Я нашел этот (AudioConcat) с помощью "Примеров кода и Приложений" ссылка на здесь.

4
ответ дан 1 December 2019 в 00:37
поделиться

Ваш вызов, хотя происходит, если два файла WAV не имеют того же самого формата в волновом заголовке.

Если волновые форматы на этих двух файлах не являются тем же, Вы оказываетесь перед необходимостью находить способ превратить их так, они соответствуют.

Это может включить транскод MP3 или другие виды транскодирования (если один из них кодируется кодеком MP3).

1
ответ дан 1 December 2019 в 00:37
поделиться

Заголовок WAV должен быть не быть слишком твердым для парсинга, и если я прочитал это описание заголовка правильно, можно просто разделить первые 44 байта от второго WAV и просто добавить байты к первому. После этого необходимо, конечно, изменить некоторые поля заголовка первого WAV так, чтобы они содержали корректную новую длину.

4
ответ дан 1 December 2019 в 00:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: