首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JLayer播放时更改音量(JavaZoom)

JLayer播放时更改音量(JavaZoom)
EN

Stack Overflow用户
提问于 2020-06-13 02:44:15
回答 1查看 56关注 0票数 0

我构建了一个可以播放web音乐流的JLayer,除了音量之外,它工作得很好。我不能让它改变。

我已经尝试了以下操作,但音量始终保持不变,没有错误:

代码语言:javascript
复制
public synchronized void setVolume(float vol) {
    Line.Info source = Port.Info.SPEAKER;

    if (AudioSystem.isLineSupported(source)) {
        try {
            Port outline = (Port) AudioSystem.getLine(source);
            outline.open();

            FloatControl volumeControl = (FloatControl) outline.getControl(FloatControl.Type.VOLUME);
            System.out.println("volume: " + volumeControl.getValue());

            volumeControl.setValue(vol);
            System.out.println("new volume: " + volumeControl.getValue());

        } catch (LineUnavailableException ex) {
            System.err.println("source not supported");
            ex.printStackTrace();
        }
    }
}


/*public synchronized void setVolume(double vol) {
    try {
        Mixer.Info[] infos = AudioSystem.getMixerInfo();
        for (Mixer.Info info : infos) {
            Mixer mixer = AudioSystem.getMixer(info);
            if (mixer.isLineSupported(Port.Info.SPEAKER)) {
                Port port = (Port) mixer.getLine(Port.Info.SPEAKER);
                port.open();
                if (port.isControlSupported(FloatControl.Type.VOLUME)) {
                    FloatControl volume = (FloatControl) port.getControl(FloatControl.Type.VOLUME);
                    volume.setValue((float) (vol / 100));
                }
                port.close();
            }
        }
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}*/
EN

回答 1

Stack Overflow用户

发布于 2020-06-14 01:38:15

我的经验是,Java支持的各种Controls的实现在某种程度上是偶然的。我不清楚为什么会这样。也许这与操作系统或特定机器所支持的功能有关?

无论如何,对于音量而言,MASTER_GAIN通常是音量的最佳选择。

Java Tutorials section on using Controls的结尾部分讨论了直接操作音频数据。我推荐这个选项,但是在使用JavaZoom代码时获取数据可能会有问题,并且可能涉及到调整库的源代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62350578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档