媒体密钥在Ubuntu 17.10上不起作用


21

我在Thinkpad T470s上运行了很多全新的Ubuntu 17.10安装。

每当我在任一键盘或蓝牙耳机上按下任一媒体键(播放/暂停,跳过等)时,都会看到此图标:

媒体密钥上的弹出窗口,指示不允许执行任何操作

显示器上闪烁,但我的媒体播放器没有任何反应。

密钥在showkey以下位置识别:

~$ sudo showkey -k
press any key (program terminates 10s after last keypress)...
keycode 163 press
keycode 163 release
keycode 165 press
keycode 165 release
keycode 164 press
keycode 164 release

但它们不会出现在中xev


我有一个类似的问题。除了它的工作之前,我重新安装了新的Kubuntu 17.10.1
insidesin

终端中的pulseaudio是否发出任何令人恐惧的消息?添加swh-plugins有帮助吗?
盟友

此符号表示桌面环境可以识别媒体密钥,但是没有应用程序将其自身注册为媒体命令用户。您(当时)正在/曾经运行哪个媒体播放器?您还可以在中查看GNOME的键盘快捷键映射gnome-control-center keyboard shortcuts
David Foerster,

我想用mx3空中鼠标控制kodi。在gnome-control-center中,我取消了播放/播放暂停/下一个/上一个的媒体密钥,现在可以在kodi中使用它们了。但是快进和快退均不起作用,这里出现上面的图标,我无法在gnome-control-center中看到可以禁用它们的位置。

Answers:


21

整个问题看起来像是Gnome提出的“这不是bug,而是功能”。

简而言之:当您按下媒体按钮时,它会生成一个密钥代码,然后将其转换为命令。假设您按下播放/暂停按钮。它生成键码162和命令XF86AudioPlay。

现在,几乎所有正在等待此事件的媒体应用程序(例如VLC,图腾,kodi,spotify等)都希望收到纯XF86AudioPlay命令。侏儒做什么?它拦截该命令并将其转换为它自己的命令“ play”。因此,xev和xbindkeys都无法正确显示此事件-它们永远不会收到他们可以理解的命令。

当您按下媒体按钮时,Gnome会接收命令并检查是否有任何应用程序被其认为能够接收此命令。如果存在(例如,图腾,rhytmbox或VLC),它将发送应该起作用的“播放”。如果没有被识别为能够接收此命令的应用程序,则Gnome将显示第一篇文章所附的标志,并且不会在任何地方发送任何命令。

解决方案很简单-使Gnome无法截获媒体密钥事件。安装dconf-editor,转到org.gnome.settings-daemon.plugins.media-keys并将任何可以正常使用的按钮从XF86SomeExample(例如XF86AudioPlay)更改为none(“)”。这样,任何应用程序都应直接接收键盘命令。


1
这很好。如果您在Gnome设置-键盘-媒体键中禁用了播放/暂停,Kodi可以使用它。但是对于快进和快退,仍然会出现上面的“无效”符号,但我不知道要禁用什么。媒体密钥中未提及快速FF / BW。

这是我需要的秘密调味料。这一点,再加上组合playerctlxbindkeys现在我的键盘可以控制所有我的球员,而不是仅仅的Rhythmbox。
阿德里安

我做了这些改变后也会重新启动(登录和注销可能就够了),使他们的工作
萨拉米

1
这仍然适用于Ubuntu 18.04,至少对我而言,无需重启甚至无需注销
N1mr0d

18

如果键盘媒体键在您的Ubuntu桌面上不起作用,则可以使用D-Bus支持将正确的命令发送到Spotify。从控制台验证以下命令:

播放/暂停

dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause

下一个

dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Next

以前

dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Previous

启用媒体密钥快捷方式

要将它们绑定到键盘,请转到设置>键盘>快捷方式>自定义快捷方式,然后使用进行“添加” +。使用上面的命令之一,然后按要与新命令绑定的键。

在此处输入图片说明

资源

https://fabianlee.org/2016/05/25/ubuntu-enabling-media-keys-for-spotify/


太好了,这正是我想要的。非常感谢!
Josh Crozier

这在Ubuntu 14.04中对我有用,除了我使用Compiz之外,因此我不得不使用CompizConfig设置管理器“命令”小程序来分配快捷方式。
泰勒·科利尔

它适用于Ubuntu 18.04,Linux内核版本4.15.0-51-通用,Spotify版本1.1.5.153.gf614956d。谢谢!
Gormador

如果我也按照darkdude的回答建议进行操作,这对我很有用
totymedli

你可以用比Spotify的其他玩家这项工作,只是改变spotifyvlcrhythmbox等的命令。
totymedli

6

我发现,使用截至2019/2/1的Ubuntu 18.04 LTS,我所需要做的就是:

  • 安装dconf-editor
  • 导航到org / gnome / settings-daemon / plugins / media-keys
  • 对于每个无效的键:
    • 取消选中“使用默认值”
    • 打申请
    • 重新检查“使用默认值”
    • 点击再次申请

有问题的媒体密钥现在应该立即可以使用。

按照darkdude的建议,不使用任何值对我没有用。


当我打开dconf-editor时,我发现未对播放/暂停,上一曲目和下一首进行检查的默认值。检查这三个键的默认设置解决了我的问题。
dericke

我不太明白为什么切换“使用默认值”有效,但是它对我也有效+1
Miroslav Glamuzina

4

最后两个答案的结合对我有用。我有Ubuntu 18.04的键盘测试工作

~$ sudo showkey -k
press any key (program terminates 10s after last keypress)...
keycode 163 press
keycode 163 release
keycode 165 press
keycode 165 release
keycode 164 press
keycode 164 release

但是当我转到“ 活动”->“键盘”并尝试使用“播放” /“下一个” /“上一个”执行任何操作时,它根本无法工作。当我停用默认键关联(调用键关联对话框,按退格键并单击“保存”)并创建可以使用的全新键关联时,@ foamboarder的回答非常有帮助

现在看来,即使从睡眠模式唤醒计算机后,快捷方式设置中的屏幕截图也可以正常运行


1
+1,因为这最终对我有用,但是您应该已经包括了在自定义键盘快捷键中使用的命令:dbus-send --print-reply --dest=org.mpris.MediaPlayer2.rhythmbox /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause和... Previous和...Next
bitinerant

1

使用@Václav的上述答案为我在Ubuntu 18.04上工作,他说

“ ...禁用了默认密钥关联(调用密钥关联对话框,按Backspace键并单击Save)并创建全新的密钥关联”。

我使用Rhythmbox,这是我为Rhythmbox的每个Custom Shorcut输入的命令:

对于上一个:

`dbus-send --print-reply --dest=org.mpris.MediaPlayer2.rhythmbox /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Previous`  

对于下一个:

`dbus-send --print-reply --dest=org.mpris.MediaPlayer2.rhythmbox /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Next`  

对于播放/停止:

`dbus-send --print-reply --dest=org.mpris.MediaPlayer2.rhythmbox /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause`  

希望有一天能对某人有所帮助


2
我安装了playerctl它,它可以找到并控制我自动使用的大多数媒体播放器。
阿德里安

1
rhythmbox-client --play-pauserhythmbox-client --nextrhythmbox-client --previous
Ctrl-C键

0

键码似乎没有相应地映射。您可以按照ubuntu文档中所述手动映射键:https : //help.ubuntu.com/stable/ubuntu-help/keyboard-shortcuts-set.html

  1. 打开活动概述,然后开始输入键盘。
  2. 单击键盘以打开面板。
  3. 选择快捷方式选项卡。
  4. 在左窗格中选择一个类别,然后在右侧选择所需操作的行。当前的快捷方式定义将更改为“新加速器”…
  5. 按住所需的组合键,或按Backspace键清除。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.