我原本以为这是一件容易的事情,但没有任何谷歌搜索引出任何解决方案。

我为一个全屏运行的客户编写了一个应用程序,允许用户翻阅教育书籍,以帮助孩子们阅读。到现在为止还挺好。显示材料中的一些短语会被回读给用户,并且到目前为止一直很好。通常,这些声音是在系统音量下读取的。 (即,无论播放任何其他系统声音的音量如何。)

但是,客户现在希望用户能够调整程序中的音量。我有UI和处理结束工作,但我很难调整正在以有意义的方式播放的剪辑的音量。现在我有一个时髦的设置,包括读取剪辑的原始增益,然后为每个剪辑向上或向下调整。虽然这确实调整了音量,但它似乎没有相对于系统音量 - 所有声音都比系统音量安静得多。

所以,我的问题确实是:你如何建议在一个程序中控制音量?我所有的研究都没有任何意义,这对我来说意味着它很难甚至不可能,但这似乎不对。

哦,详细信息:我在WAV中读取AudioInputStreams并将其作为java.sound.sampled.Clip播放。我使用FloatControl.Type.MASTER_GAIN控制增益。 (不支持FloatControl.Type.VOLUME。)我坚持使用Java 1.4。

有帮助吗?

解决方案

您可能还会查看是否存在支持Java 1.4的旧版Java Media Framework(JMF)...它可能为您提供更丰富的音频处理环境。

除此之外,你说你陷入1.4 ...你可能会看到有没有办法升级到Java 5或6,尽管你可能想先在本地机器上测试其中任何一个看看他们是否真的有所帮助。

我猜最后一个建议是找到一些Java游戏开发网站并在那里发布您的问题;我认为他们会找到解决方法......虽然你也可以在那里得到很多'升级你的jvm'的回应。 : - )

祝你好运。

其他提示

这是特定于操作系统的事情,您必须使用JNI或 J / Invoke JNIWrapper jna 或......

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top