Este é um código simplificado que pode suportar formatos muito limitados.
A cópia do código é a seguinte:
pacote com.hongyuan.test;
importar java.io.file;
importar java.io.ioException;
importar javax.sound.sampled.audioFormat;
importar javax.sound.sampled.audioInputStream;
importar javax.sound.sampled.audiosystem;
importar javax.sound.sampled.dataline;
importar javax.sound.sampled.lineUnAVALABLEException;
importar javax.sound.sampled.sourcedataline;
importar javax.sound.sampled.unsupportedaudiofileException;
classe pública Musictest {
public static final string music_file = "sorria quando nos encontrarmos.wav";
public static void main (string [] args) lança lineunavailableexception,
UnsupportedaudiofileException, ioexception {
// Obter fluxo de entrada de áudio
AudioInputStream AudioInputStream = Audiossystem
.GetAudioInputStream (novo arquivo (music_file));
// Obtenha o objeto de codificação de áudio
AudioFormat AudioFormat = AudioInputStream.getFormat ();
// Definir entrada de dados
Dataline.info datalineInfo = new Dataline.info (Sourcedataline.class,
AudioFormat, Audiosystem.Not_Specified);
Gedatalina SourceDataline = (SourceDataline) Audiossystem
.getLine (DatalineInfo);
azedatalina.open (AudioFormat);
Sourcedataline.Start ();
/*
* Leia os dados do fluxo de entrada e envie para o misturador
*/
int contagem;
byte tempbuffer [] = novo byte [1024];
while ((count = audioinputstream.read (tempbuffer, 0, tempbuffer.length))! = -1) {
if (contagem> 0) {
Sourcedataline.write (tempbuffer, 0, contagem);
}
}
// limpe o buffer de dados e feche a entrada
SourceDataline.Drain ();
SourceDataline.Close ();
}
}