用java设置音量

时间:2010-11-25 18:15:31

标签: java audio volume

美好的一天!

我正在开发一个播放MIDI的应用程序。它运行良好,但我经常得到准bug报告:'没有声音playd'。答案是,进入音量控制器并打开合成器声音(使其不静音)。

问题是 - 如何通过软件自动更改?直到现在我只能改变主音量,我真的无法在任何地方找到如何改变'wave''SW合成器'等...

我一般都在寻找平台独立的解决方案(纯java),但是欢迎仅针对Windows(各种各样的Windows)的解决方案;)谢谢你!

编辑:嗯,看看答案,我知道,我应该更好地指出我的问题。我附加图片。用绿色选择的控件是我已经可以做的(即Cliff链接)但是我需要用红色控件的东西(在我的情况下最重要的是左边的第3个 - 合成器音量)。图像取自win XP,但其他操作系统(linux也)也有类似的控件。 Java必须具备这种可能性。 alt text

3 个答案:

答案 0 :(得分:1)

我查看了Ubuntu,Fedora和Windows,这些操作系统的唯一共性是主卷和警报(或Windows上的“哔”)卷。这让我相信没有与平台无关的方法,这意味着没有标准的Java方式。

话虽如此,很可能所有这些操作系统的API(可能都不同)允许您控制这些更细粒度的设置。如果是这样,它几乎肯定需要单独的Java库来与每个平台上的这些API进行交互。

抱歉,我无法指出正确的方向,但我希望至少可以帮助您消除采用标准化方法执行此功能的可能性。祝你好运!

答案 1 :(得分:0)

使用sysinternal的Process Monitor使用屏幕截图中的工具调整波形/合成器级别时,请尝试查看背景中发生的情况,然后让您的java代码执行相同的本机系统/ dll调用。

答案 2 :(得分:0)

您是使用某种界面还是使用系统的默认Mixer?你在谈论什么级别的控制?不幸的是我也在学习这个API,但我首先想到的是每个都是不同的一行,对吧?您是否尝试过获取所有系统行并在每行上使用MASTER_GAIN?就像我上面的人说的那样,我确信有这样的API,但如果我打算在我自己的代码中用于教育目的,或者我会从哪里开始。说到API,有一个Control API可以自己处理音频数据,但据我所知,这并不会影响硬件的音量控制。