【发布时间】:2020-08-24 16:44:57
【问题描述】:
搜索了几个小时后,我想知道我是否在问一个不可能的问题。
我们有一个 JavaFX 应用程序在 Ubuntu 上运行,带有 Pulseaudio。我想在 JavaFX 应用程序中以编程方式设置 HDMI 接收器的音量,类似于命令行的效果:
pactl set-sink-volume (hdmi sink) volume
但不知道如何执行此操作。我可以找到设置特定媒体文件音量的MediaPlayer.setVolume() 方法,但我想为在该接收器中播放的任何后续媒体设置音量,直到它的音量设置在其他地方.这是因为我们启动了一个浏览器并想要设置浏览器播放的任何媒体的音量。这一定是可能的吗?
【问题讨论】:
-
MediaPlayer的volume属性只是该播放器的音量,它是相对于系统音量的,它本身可能是相对于扬声器音量的(取决于您的扬声器的音量是独立控制的)。也就是说,您可能可以通过ProcessBuilder执行该命令。这至少应该让您的应用程序正常工作。否则,您可能不得不进入本机代码并使用 JNI 从 Java 调用它。 -
谢谢,我很可能会使用
ProcessBuilder,但我很惊讶没有库可以这样做。 -
可能有一个图书馆,但我不知道有一个。不幸的是,如果您正在寻找使您的问题偏离主题的图书馆推荐(请参阅help center)。
-
我正在寻找一种方式,而不是图书馆。我目前正在使用
ProcessBuilder实施。
标签: ubuntu javafx pulseaudio