これは、非常に限られた形式をサポートできる合理化されたコードです。
コードコピーは次のとおりです。
パッケージcom.hongyuan.test;
java.io.fileをインポートします。
java.io.ioexceptionをインポートします。
javax.sound.sampled.audioformatをインポートします。
javax.sound.sampled.audioinputStreamをインポートします。
javax.sound.sampled.audiosystemをインポートします。
javax.sound.sampled.datalineをインポートします。
javax.sound.sampled.lineunavailableExceptionをインポートします。
javax.sound.sampled.sourcedatalineをインポートします。
javax.sound.sampled.unsupportedaudiofileexceptionをインポートします。
パブリッククラスMusictest {
public static final string music_file = "私たちが会ったときの笑顔。
public static void main(string [] args)throws lineunavailableexception、
unsupportedaudiofileexception、ioexception {
//オーディオ入力ストリームを取得します
AudioInputStream AudioInputStream = audiosystem
.getAudioInputStream(new file(music_file));
//オーディオエンコードオブジェクトを取得します
audioformat audioformat = audioinputStream.getFormat();
//データ入力を設定します
dataline.info datalineInfo = new Dataline.info(sourcedataline.class、
audioformat、audiosystem.not_specified);
Sourcedataline Sourcedataline =(Sourcedataline)Audiosystem
.getline(datalineInfo);
sourcedataline.open(audioformat);
sourcedataline.start();
/*
*入力ストリームからデータを読み、ミキサーに送信します
*/
int count;
Byte tempbuffer [] = new byte [1024];
while((count = audioinputStream.read(tempbuffer、0、tempbuffer.length)!= -1){
if(count> 0){
sourcedataline.write(tempbuffer、0、count);
}
}
//データバッファをクリアし、入力を閉じます
sourcedataline.drain();
sourcedataline.close();
}
}