簡體   English   中英

音頻-剪輯不會停止

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM