Jaki jest najprostszy sposób połączenia dwóch plików WAV w Java 1.6? (Równe częstotliwości i wszystkich, nic szczególnego.)Dołącz dwa pliki WAV z Java?
(Jest to prawdopodobnie sooo proste, ale moje Google-fu wydaje się słaba na ten temat dzisiaj.)
Jaki jest najprostszy sposób połączenia dwóch plików WAV w Java 1.6? (Równe częstotliwości i wszystkich, nic szczególnego.)Dołącz dwa pliki WAV z Java?
(Jest to prawdopodobnie sooo proste, ale moje Google-fu wydaje się słaba na ten temat dzisiaj.)
Oto kod Barebone:
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();
}
}
}
Dziękujemy! Musiał być prosty sposób. – krosenvold
To już nie działa, bo Android nie obsługuje już pakietu javax.sound.sampled. *. Czy jest to jakikolwiek inny sposób na zrobienie tego? –
Drodzy Alex, pytanie brzmi: O mnie w java nie dla Androida – dhams
Nagłówek WAV nie powinno być zbyt trudne do analizowania, a jeśli Czytam this header description poprawnie, możesz po prostu usunąć pierwsze 44 bajty z drugiego WAV i po prostu dołączyć bajty do pierwszego. Następnie należy oczywiście zmienić niektóre pola nagłówka pierwszego WAV, tak aby zawierały poprawną nową długość.
Zakładając, że są one tej samej przepływności, częstotliwości próbkowania i mają tę samą liczbę kanałów. – dreamlax
Oczywiście, ale Krosenvold powiedział, że tak. – schnaader
Ale czy naprawdę muszę to zrobić sam? Musi być prostsze rozwiązanie? – krosenvold
Twoim wyzwaniem choć występuje wtedy, gdy dwa pliki WAV nie mają dokładnie ten sam format w nagłówku fali.
Jeśli formaty fal na dwóch plikach nie są takie same, musisz znaleźć sposób, aby je zindegualizować, aby pasowały do siebie.
Może to dotyczyć transkodowania MP3 lub innego rodzaju transkodowania (jeśli jeden z nich jest kodowany za pomocą kodeku MP3).
No cóż, mam szczęście, że nie muszę tego brać pod uwagę. – krosenvold
Dowiedziałem się, co jest Google-fu +1 :) –