2014-01-26 71 views
0

我的程序中播放了一些音樂。我希望它根據某些操作等來切換音樂。問題是我的音樂是從一種方法開始播放的,我試圖阻止它從另一種方法或動作事件中播放。另一種方法不能找到我的剪輯對象,因爲它不公開。是否有可能爲我的整個班級公開這個剪輯對象?我試着爲音樂創作另一堂課。有人可以指導我嗎?謝謝,如何從其他方法停止聲音(同時播放)

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 
} 

回答

0

Clip clip那麼類變量從dummyMethod

致電 clip.Stop()
+0

什麼是將剪輯作爲類變量的例子? Clip clip = new Clip(); ? –

0

你爲什麼不使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(); 
} 
+0

我該怎麼做?如果我寫 Clip clip = AudioSystem.getClip(); 它不認爲它是一個對象。對象是如何聲明的? –

+0

看我的編輯。你只需在你的方法之外聲明'clip',然後你初始化它以前的樣子。 –

0

聲明你剪輯變量的方法外,
只要寫夾夾;以上你的方法,

相關問題