[英]audio - Clip won't stop
我有一個函數,每次用戶單擊時都會調用該函數,如果屏幕已更改,它將啟動音樂。 現在唯一的問題是它不會停止。 我發現這是因為clip = AudioSystem.getClip(); 不會返回當前播放的剪輯,而是每次都返回一個隨機位置。 如何確保該剪輯獲得當前正在播放的剪輯的值,以便可以停止播放?
“ StartBGMusic”功能
public void startBGMusic() throws LineUnavailableException, IOException
{
clip = AudioSystem.getClip();
System.out.println(clip);
try
{
if(SCREEN_CHECK != Screen)
{
clip.stop();
clip.close();
if(Screen != 14 && Screen != 19 && Screen != 16 && Screen != 15 && Screen != 17)
{
clip.open(AudioSystem.getAudioInputStream(getClass().getResource("UpbeatFunk.wav")));
clip.loop(99999);
}
else
{
clip.open(AudioSystem.getAudioInputStream(getClass().getResource("Background Music.mid")));
clip.loop(99999);
}
}
SCREEN_CHECK = Screen;
}catch (Exception e)
{
e.printStackTrace(System.out);
}
}
根據oracle文檔, getClip()不會返回當前的播放聲音,而是一個可用於播放音頻文件的剪輯對象。
您將需要傳遞對用於啟動音頻文件的剪輯的引用。 這可以通過將其返回/作為參數傳遞或使用全局變量/ getter方法來完成
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.