使用jlayer更改卷java?

时间:2012-08-24 05:32:31

标签: java volume jlayer

我搜索并阅读了另一个主题,但我仍然无法解决我的问题。我有一个java主类和一个java jframe。我想添加jslider来改变我的mp3播放器的音量。我该怎么办?

my_player2_func

class 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?}

1 个答案:

答案 0 :(得分:0)

JLayer是解码器。根据其定义,它对音量一无所知,这就是播放声音的音频硬件的工作。

你的问题源于你正在使用播放器和默认的JavaSoundAudioDevice类,这些类意味着作为简短的例子如何播放MP3,而不是作为完整成熟音频的构建块播放器。

您必须复制或修改JavaSoundAudioDevice的源代码(JLayer源代码的一部分)并破解它以支持音量控制。你可以控制音量。