Ich versuche, ein kleines Programm in Java zu erstellen, das eine Audiodatei (silence_2sec.wav) an alle Audiodateien in einem bestimmten Verzeichnis (/ audiofiles) einzeln anfügt.
Ich bin bei der folgenden Idee angekommen, aber leider funktioniert die 'for'-Schleife nicht - die Ausgabe ist nur eine Verkettung einer Datei aus dem angegebenen Verzeichnis (/ audiofiles) mit der Audiodatei im Programmverzeichnis (silence_2sec.wav)
Kann jemand vorschlagen, warum die "for"-Schleife nicht alle Dateien in den Audiodateien (/ audiofiles) durchläuft und den Prozess für jeden von ihnen ausführt?
Bisher:-
Ich bin bei der folgenden Idee angekommen, aber leider funktioniert die 'for'-Schleife nicht - die Ausgabe ist nur eine Verkettung einer Datei aus dem angegebenen Verzeichnis (/ audiofiles) mit der Audiodatei im Programmverzeichnis (silence_2sec.wav)
Kann jemand vorschlagen, warum die "for"-Schleife nicht alle Dateien in den Audiodateien (/ audiofiles) durchläuft und den Prozess für jeden von ihnen ausführt?
Bisher:-
Java:
import java.io.File;
import java.util.*;
import java.io.*;
import javax.sound.sampled.*;
public class silapp_2e{
public static void main(String[]args)
{
String wavFile2 = "silence_2sec.wav";
File dir = new File("audiofiles");
File[] directoryListing = dir.listFiles();
for (File f : directoryListing) {
try {
int x = 0; x++;
String fileName = (f.getAbsolutePath());
AudioInputStream clip1 = AudioSystem.getAudioInputStream(new File(f.getAbsolutePath()));
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("output" + x + ".wav"));
} catch (Exception e) {
e.printStackTrace();
}
}
}
}