使用 DBus 控制 Gnome 音量

Posted

技术标签:

【中文标题】使用 DBus 控制 Gnome 音量【英文标题】:Controlling Gnome Volume using DBus 【发布时间】:2011-02-19 07:49:44 【问题描述】:

我对整个 DBus 的东西还很陌生,如果这很琐碎,请原谅,但我想知道使用 DBus 是否可以从命令行设置音量。

【问题讨论】:

【参考方案1】:

这似乎适用于 Ubuntu 10.04 中的 GNOME 2.30:

$ dbus-send --session --dest=org.ayatana.indicator.sound /org/ayatana/indicator/sound/service org.ayatana.indicator.sound.SetSinkVolume uint32:40

这会将音量设置为 40%。将 40 替换为您想要的音量百分比。

反之,看看当前的音量是多少:

$ dbus-send --session --print-reply --dest=org.ayatana.indicator.sound /org/ayatana/indicator/sound/service org.ayatana.indicator.sound.GetSinkVolume
method return sender=:1.54 -> dest=:1.2228 reply_serial=2
   double 39.9994

(是的,您将音量设置为 uint32,但将其设置为双精度。我也不明白。)

鉴于Ayatana 似乎是一个 Ubuntu 项目,我不知道它对于其他发行版的可移植性如何。

【讨论】:

听起来就像我正在寻找的东西。谢了哥们。我还会检查这是否适用于其他发行版。【参考方案2】:

你也可以使用:

xdotool key XF86AudioRaiseVolume
xdotool key XF86AudioLowerVolume
xdotool key XF86AudioMute

【讨论】:

以上是关于使用 DBus 控制 Gnome 音量的主要内容,如果未能解决你的问题,请参考以下文章

在 Gjs / Gnome Shell 中调用 DBus 方法

在 Gnome 中,dbus-monitor 上的啥信号表明用户正在注销?

Python dbus 找不到 org.(gnome|freedesktop).ScreenSaver

DBus Python 问题

如何从控制台创建 dbus 服务?

通过 Python 的 dbus 模块控制 CentOS 中的 firewalld?