Dies ist ein optimierter Code, der sehr begrenzte Formate unterstützen kann.
Die Codekopie lautet wie folgt:
Paket com.hongyuan.test;
Import Java.io.file;
importieren java.io.ioException;
import Javax.Sound.samPled.audioFormat;
import Javax.sound.sampled.audioInputStream;
import javax.sound.samPled.audiosystem;
import Javax.Sound.sampled.dataline;
import Javax.sound.samPled.lineUnAverleableException;
import Javax.Sound.samPled.Sourcedataline;
import Javax.sound.samPled.unsupportedauOfileException;
öffentliche Klasse mussictest {
public static final String music_file = "Lächeln, wenn wir uns treffen. Wav";
öffentliche statische Leere Main (String [] args) löst LineUnAverleableException aus,
Nicht unterstütztedaufileException, ioException {
// Audioeingangsstream abrufen
AudioInputStream AudioInputStream = Audiosystem
.GetaudioInputStream (neue Datei (music_file));
// Holen Sie sich das Audio -Codierungsobjekt
Audioformat audioformat = audioInputStream.getFormat ();
// Dateneingabe festlegen
Dataline.info datalineInfo = new Dataline.info (Sourcedataline.Class,
audioformat, audiosystem.not_Specified);
Sourcedataline Sourcedataline = (Sourcedatalin) Audiosystem
.GetLine (DatalinInfo);
Sourcedataline.open (AudioFormat);
Sourcedataline.Start ();
/*
* Lesen Sie Daten aus dem Eingabestream und senden Sie an den Mixer
*/
int Count;
Byte tempbuffer [] = neues Byte [1024];
while ((count = audioIinputStream.read (tempbuffer, 0, tempbuffer.length))! = -1) {
if (count> 0) {
Sourcedataline.Write (Tempbuffer, 0, Graf);
}
}
// Löschen Sie den Datenpuffer und schließen Sie die Eingabe
Sourcedataline.Drain ();
Sourcedataline.CLOSE ();
}
}