簡體   English   中英

如何通過另一種方法停止聲音(在播放時)

[英]How to stop a sound (while its playing) from another method

我的程序中播放了一些音樂。 我希望它根據某些動作等來切換音樂。問題是我的音樂從一種方法開始播放,而我試圖從另一種方法或動作事件停止播放。 另一個方法無法找到我的剪輯對象,因為它不是公共的。 是否可以在整個班級中公開此剪輯對象? 我試着再上一堂音樂課。 有人可以指導我嗎? 謝謝,

public void playsound(String filepath){
    try {
            AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File(filepath));
            Clip clip = AudioSystem.getClip( );
            clip.open(audioInputStream);
            clip.start( );    
            }

        catch(Exception e)  {
            e.printStackTrace( );
        }
}


 public void dummyMethod(){

//when this method is call make the clip stop
}

為什么不使Clip對象成為實例/類范圍的變量,而不僅僅是局部變量,所以當您要關閉或暫停它時可以調用clip.stop()clip.pause()方法?

編輯

// declare as an instance variable
private Clip clip; 

public void playsound(String filepath){
    try {
            AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File(filepath));
            // NOTICE: I am only initializing and NOT declaring (no capital Clip)
            clip = AudioSystem.getClip( );
            clip.open(audioInputStream);
            clip.start( );    
            }

        catch(Exception e)  {
            e.printStackTrace( );
        }
}

 // call stop method to stop clip form playing
 public void dummyMethod(){
    clip.stop();
 }

使Clip clip成為類變量,然后從dummyMethod調用clip.Stop()

在方法之外聲明Clip變量,
只需編寫Clip剪輯; 在您的方法之上,

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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