多媒体键有时会停止工作

多媒体键有时会停止工作

我在使用 Ubuntu 和 Gnome。我的多媒体键(播放/暂停、停止等)一直工作正常,然后突然间它们停止工作了。

我特别希望他们能与 Spotify 合作。

答案1

常见解决方案

如果多媒体键之前可以使用但现在停止工作,以下一种或多种解决方案可能会有所帮助:

  • 重新启动gsd-media-keys(参见故障排除下面看看为什么这可能是必要的)

    • Ubuntu 20.04+

      systemctl --user restart gsd-media-keys.target
      
    • 之前的版本

      killall gsd-media-keys
      
  • 尝试关闭所有应用程序,然后打开您想要首先接收多媒体键的应用程序

    • 接收多媒体按键的应用程序可能会接收所有按键并阻止其他应用程序接收它们
    • 接收多媒体按键的常见应用程序:
      • 铬合金
      • 火狐
      • Spotify
      • 如果你开始播放媒体文件,其他基于 Electron 的应用程序可能会抓取多媒体键(例如 Microsoft Teams)
  • 另一种解决方法是完全禁用某些应用程序的多媒体键支持

    • 铬合金

      1. 在地址栏中转到chrome://flags/#hardware-media-key-handling
      2. 将值更改为Disabled
      3. 重启 Chrome
    • 火狐

      1. 在地址栏中转到about:config
      2. 如果需要,单击接受风险并继续
      3. 搜索media.hardwaremediakeys.enabled
      4. false通过点击切换按钮进行设置
      5. 重启 Firefox
    • 微软团队

      应用程序中没有禁用媒体键的设置,但由于它是一个 Electron 应用程序,因此您可以使用这种解决方法:

      1. 复制默认桌面文件

        cp /usr/share/applications/teams.desktop ~/.local/share/applications/teams.desktop
        
      2. 添加参数以禁用媒体键

        sed -i 's/^Exec=teams %U/Exec=teams --disable-features=HardwareMediaKeyHandling %U/' ~/.local/share/applications/teams.desktop
        

      如果您已将 Teams 配置为自动启动,则可以使用以下步骤:

      1. 从 Teams 内部禁用自动启动(3 个点菜单 >设置> 取消勾选自动启动应用程序

      2. 创建自定义自动启动文件

        cp /usr/share/applications/teams.desktop ~/.config/autostart/teams-custom.desktop
        
      3. 添加参数以禁用媒体键

        sed -i 's/^Exec=teams %U/Exec=teams --disable-features=HardwareMediaKeyHandling %U/' ~/.config/autostart/teams-custom.desktop
        
  • 将媒体键快捷键重置为默认值

    dconf reset /org/gnome/settings-daemon/plugins/media-keys/next
    dconf reset /org/gnome/settings-daemon/plugins/media-keys/pause
    dconf reset /org/gnome/settings-daemon/plugins/media-keys/play
    dconf reset /org/gnome/settings-daemon/plugins/media-keys/previous
    
  • 如需更多控制,请参阅播放器控制


故障排除

  1. 用于dbus-send列出通过以下方式配置的应用程序管理咨询研究所接收多媒体密钥,例如:

    $ dbus-send --print-reply --dest=org.freedesktop.DBus  /org/freedesktop/DBus org.freedesktop.DBus.ListNames | grep org.mpris
      string "org.mpris.MediaPlayer2.spotify"
      string "org.mpris.MediaPlayer2.chrome.instance22348"
    

    在此示例中,您可以看到 Spotify 和 Chrome ( org.mpris.MediaPlayer2.chrome.instance22348) 已配置为接收多媒体密钥

    • 笔记:如果您看到类似的条目org.mpris.MediaPlayer2.chromium.instance16163,但您没有安装 Chromium,则它可能是基于 Electron 的应用程序。
  2. 观看 /var/log/syslog

    tail -F /var/log/syslog
    
  3. 按媒体键(播放、暂停、停止等)

  4. 查看日志中是否有相关消息,例如

    Mar 26 12:23:17 hostname gsd-media-keys[1762]: Error calling method GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.mpris.MediaPlayer2.chrome.instance10062 was not provided by any .service files
    

    org.mpris.MediaPlayer2.chrome.instance10062在此示例中,您可以看到即使该应用程序不在步骤 1 中的列表中,也会发送密钥。

    解决方案(如上所述)是重新启动gsd-media-keys

  5. 如果以上方法均无效,请确保媒体键快捷键均设置为默认值

    dconf read /org/gnome/settings-daemon/plugins/media-keys/next
    dconf read /org/gnome/settings-daemon/plugins/media-keys/pause
    dconf read /org/gnome/settings-daemon/plugins/media-keys/play
    dconf read /org/gnome/settings-daemon/plugins/media-keys/previous
    

    如果所有键都设置为其默认值,则不应返回任何输出,例如:

    $ dconf read /org/gnome/settings-daemon/plugins/media-keys/next
    $ dconf read /org/gnome/settings-daemon/plugins/media-keys/pause
    $ dconf read /org/gnome/settings-daemon/plugins/media-keys/play
    $ dconf read /org/gnome/settings-daemon/plugins/media-keys/previous
    $
    

相关内容