Este es un código simplificado que puede admitir formatos muy limitados.
La copia del código es la siguiente:
paquete com.hongyuan.test;
import java.io.file;
import 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.lineUnavailableException;
import javax.sound.sampled.sourcedataline;
import javax.sound.sampled.unsupportedaudiofileException;
clase pública musictest {
Public static final String music_file = "Smile When Wee WeeN.Wav";
Public static void main (string [] args) lanza lineunavailableException,
No soportada audiofileexception, ioexception {
// Obtener transmisión de entrada de audio
AudioInputStream audioInputStream = Audiosystem
.getAudioInputStream (nuevo archivo (music_file));
// Obtener el objeto de codificación de audio
AudioFormat AudioFormat = AudioInputStream.GetFormat ();
// establecer la entrada de datos
Dataline.info dataLineInfo = new DataLine.info (SourCedataline.Class,
audioformat, audiosystem.not_specified);
Audiosistema de TourCedataline ORCEDATALINE = (Sourceedataline)
.getLine (dataLineInfo);
Sourcedataline.open (audioformat);
SourceDataline.Start ();
/*
* Lea los datos de la secuencia de entrada y envíe al mezclador
*/
int cuenta;
byte tempbuffer [] = nuevo byte [1024];
while ((count = audioInputStream.read (tempbuffer, 0, tempbuffer.length))! = -1) {
if (count> 0) {
SourceDataline.Write (tempbuffer, 0, count);
}
}
// Borrar el búfer de datos y cerrar la entrada
SourceDataline.Drain ();
SourceDataline.close ();
}
}