для проекта, над которым я работаю, я хочу иметь возможность объединять несколько файлов .wav.
Благодаря моим исследованиям я смог придумать этот код:
File sample1 = new File("F:\\Programming\\Resources\\Java_Sound\\trumpet1.wav");
File sample2 = new File("F:\\Programming\\Resources\\Java_Sound\\trumpet2.wav");
File fileOut = new File("F:\\Programming\\Resources\\Java_Sound\\Test.wav");
AudioInputStream audio1 = AudioSystem.getAudioInputStream(sample1);
AudioInputStream audio2 = AudioSystem.getAudioInputStream(sample2);
AudioInputStream audioBuild = new AudioInputStream(new SequenceInputStream(audio1, audio2), audio1.getFormat(), audio1.getFrameLength() + audio2.getFrameLength());
//for(int i = 0; i < 5; i++){
// audioBuild = new AudioInputStream(new SequenceInputStream(audioBuild, audio2), audioBuild.getFormat(), audioBuild.getFrameLength() + audio2.getFrameLength());
//}
AudioSystem.write(audioBuild, AudioFileFormat.Type.WAVE, fileOut);
он отлично работает для объединения двух файлов .wav, однако, когда я раскомментирую цикл for, созданный файл .wav воспроизводит звук только для первого объединения. Звуковая дорожка, кажется, заканчивается раньше, так как полоса продолжительности wmp проходит только около 1\5 пути по экрану.
Я предположил, что проблема связана с заголовком в созданном файле .wav. Я исследовал много разных веб-страниц, обсуждающих, как создается заголовок, но все они имели немного разные определения, но все говорили, что заголовок должен быть в шестнадцатеричном формате. При преобразовании потока (не аудиопотока, стандартного FileInputStream) заголовки, которые у меня были, были десятичными. Кроме того, после части RIFF и перед частью WAVE предполагается размер всего файла, не включая первые 8 байтов. Однако некоторые из моих включали дефисы. Честно говоря, я понятия не имею, что они означают. Однако, игнорируя их, размер тестового файла после раскомментирования приведенного выше кода по-прежнему остается большим.
Итак, изучив, как объединять несколько аудиофайлов и как создавать \ управлять заголовками .wav, я до сих пор понятия не имею, почему остальная часть моего аудио не воспроизводится, если она вообще существует. Любая помощь приветствуется. Заранее спасибо.