2013-04-19 2 views
0

게임에서 mp3 파일을 재생할 때 JLayer를 사용하지만 노래를 중지 할 수 없습니다. 나는 그것이 중지해야 정지 방법 해시 맵 "reproduciendo"의 노래를 제거하면JLayer를 사용하여 사운드를 멈추는 방법

public void play(final String sonido) { 

    reproduciendo.put(sonido, 1); 
    Thread thread = new Thread() { 
     public void run() { 
      while(reproduciendo.get(sonido)!=null) { 
      try { 
      Player player = new Player(getSonido(sonido)); 
      player.play(); 
      if(player.isComplete()) reproduciendo.remove(sonido); 
      } catch(Exception e) {e.printStackTrace();}; 
     }} 
    }; 

    thread.start(); 

} 


public void stop (String sonido) { 
    reproduciendo.remove(sonido); 
} 

,하지만 아무것도 내가 여기 이런 식으로 읽었 수행되지 않습니다, 그러나 그것은 작동하지 않습니다 : 그것은 내 코드입니다 나를. 다른 방법을 알고 있습니까?

+0

을 중단해야하는 경우 하나 개의 오디오 프레임을 재생하고 플래그를 확인, 다른 유사한 질문에 대한 내 대답을 참조 내 조언을 무시하면서 JLayer를 선택하는 데있어 http://stackoverflow.com/q/16087152/418556). 이 질문에 JLayer 태그를 추가하고 Java Sound가 가진 추종자의 1/5을 차지하고 있음을 확인합니다. Java Sound로 재생되는 사운드를 정지시키는 것은 꽤 쉽습니다. –

답변

0

어떤 라이브러리를 사용하고 있는지 알 수는 없지만 플레이어 클래스에서 "중지"메소드를 찾을 수 있습니다.

+0

JLayer ([link] (http://www.javazoom.net/javalayer/javalayer.html))를 사용하고 있습니다. 메소드를 중지하지 않았습니다. – jramirez

+0

닫기 메소드가 사용자가 찾고있는 것을 수행하는 것처럼 보입니다. –