オーディオを再生するだけの場合は、次の方法があります。
String 変数には、オーディオ ファイルへの正しいパスが必要です。audioFileDirectory
そうしないと、例外がスローされ、プログラムが実行されません。
IDE を使用している場合に、プロジェクトに適切なオーディオ ファイル ディレクトリがある例:
- フォルダー内に
src
フォルダーを作成します (例: "music")。そこにオーディオ ファイルを配置します。
audioFileDirectory = "/music/name_of_audio_file";
オーディオを再生するための重要な部分は、プログラムのメインスレッドが何らかの形で「生きている」必要があるということです。
Thread.sleep(audio.getMicrosecondLength()/1000);
メインスレッドが「生きている」場所であり、引数audio.getMicrosecondLength()/1000
は「生きている」時間であり、オーディオファイルの全長です。
public class AudioTest
{
void playAudio() throws Exception
{
String audioFileDirectory = "your_audioFileDirectory";
InputStream is = getClass().getResourceAsStream(audioFileDirectory);
BufferedInputStream bis = new BufferedInputStream(is);
AudioInputStream ais = AudioSystem.getAudioInputStream(bis);
Clip audio = AudioSystem.getClip();
audio.open(ais);
audio.loop(Clip.LOOP_CONTINUOUSLY);
audio.start();
Thread.sleep(audio.getMicrosecondLength()/1000);
audio.close();
} // end playAudio
public static void main(String[] args)
{
try
{
new AudioTest().playAudio();
}
catch (Exception e)
{
System.out.println("Class: " + e.getClass().getName());
System.out.println("\nMessage:\n" + e.getMessage() + "\n");
e.printStackTrace();
}
} // end main
} // end class AudioTest