私は最近、Jlayer を使用して Java で mp3 曲を再生するときに、一度に 1 つのスレッドの問題に対する解決策を使用しました。しかし、Kaleb Brasee によるこのソリューションは、プレーヤーを停止する方法、つまり、player.close() を呼び出す方法を示唆していませんでした。
Kaleb のコードは次のとおりです。
Executor executor = Executors.newSingleThreadExecutor();
executor.execute(new Runnable() { public void run() {
/* do something */
} });
これは私がrun()に入れたコードです
if(player != null) player.close();
try{
player = new Player(new FileInputStream(musicD.getPath()));
player.play();
}catch(Exception e){}
問題は、これが音楽の再生中に GUI をアクティブに保つという問題を解決するのと同じくらい (他の 1 つのスレッドでのみ - 私が望んでいたこと)、別の曲の再生を開始できないことです :-(
どうすればよいですか?