2012-08-24 3 views
0

다른 주제를 검색하고 읽었지만 여전히 문제를 해결할 수 없습니다. 나는 하나의 자바 메인 클래스와 하나의 자바 jframe을 가졌다. 내 MP3 플레이어에서 볼륨을 변경하려면 jslider를 추가하고 싶습니다. 어떻게해야합니까?jlayer를 사용하여 볼륨을 변경 하시겠습니까?

my_player2_func

클래스 my_player2_func { 정적 플레이어 플레이어;

static void play() { 
    try { 
     FileInputStream fe = new FileInputStream(my_player2_main.str); 
     player = new Player(fe); 
    } catch (Exception ex) { 
     System.out.println(ex); 
    } 

    new Thread(new Runnable() { 
     @Override 
     public void run() { 
      try { 
       player.play(); 
      } catch (Exception ex) { 
       System.out.println(ex); 
      } 
     } 
    }).start(); 
}  

static void stop() { 
    if (player != null) 
     player.close(); 
} } 

my_player2_main

public my_player2_main() { 
    initComponents();  
} 
static String str;        

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           
    my_player2_func.play(); 
}           

private void jSlider1StateChanged(javax.swing.event.ChangeEvent evt) {//what should i do here?} 
+0

JLayer는 지원하지 않습니다. 왜 다른 라이브러리를 사용하지 않습니까? – oldrinb

+0

사용하기 쉽다고 생각합니다. – user1621647

+0

@veer JLayer는 볼륨을 관리하기위한 * 디코더 * 작업이 아니기 때문에 지원하지 않습니다. 디코딩 된 오디오를 재생하는 오디오 시스템의 역할. 그런데 다른 도서관을 제안하면 실제로 그것을 바꾸지 않을 것입니다. – Durandal

답변

0

JLayer는 디코더이다. 매우 정의에 의하면 볼륨에 대해서는 전혀 알지 못합니다. 사운드를 재생하는 오디오 하드웨어의 역할입니다.

귀하의 문제는 당신이 어떻게 전체 깃털 오디오 플레이어를위한 빌딩 블록 등의 MP3를하지 재생하는 짧게, 간단한 예제를 의미했다 플레이어와가 기본으로 JavaSoundAudioDevice 클래스를 사용하고 있다는 사실에서 유래한다.

JavaSoundAudioDevice (JLayer 소스의 일부)의 소스를 복사하거나 수정하고 볼륨 컨트롤을 지원하기 위해 해킹해야합니다. 당신은 볼륨을 제어 할 수 있습니다.