2012-08-24 31 views
0

我搜索並閱讀了另一個主題,但我仍然無法解決我的問題。我有一個java主類和一個java jframe。我想添加jslider來改變我的MP3播放器的音量。我該怎麼辦?使用jlayer更改音量java?

my_player2_func

類my_player2_func { 靜態Player播放器;

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是解碼器。根據它的定義,它不知道音量的任何信息,這就是播放聲音的音頻硬件的工作。

你的問題的事實,您正在使用的播放器和defaul JavaSoundAudioDevice類,這是意味着短,簡單的例子,如何播放MP3,還不如積木爲一個羽翼豐滿的音頻播放器莖。

您將不得不復制或修改JavaSoundAudioDevice(JLayer源代碼的一部分)的源代碼並將其破解以支持音量控制。 Et瞧,你可以控制音量。