如何創建鍵盤快捷鍵來播放/暫停在後台執行的任何音頻/影片?
所以我為我的筆記型電腦買了這個鍵盤,上面沒有媒體鍵,我非常習慣按下筆記型電腦上的播放/暫停按鈕來暫停後台播放的任何媒體。但是,使用此鍵盤,由於沒有媒體鍵,我必須創建自己的鍵盤快捷鍵來執行此操作。到目前為止,我已經設法為音量控制製作鍵盤快捷鍵。
研究和我的嘗試:
- 我發現這個頁面顯示了一個從終端模擬媒體鍵的命令。 https://askubuntu.com/questions/235126/simulate-media-keys-in-terminal/235181#235181。該命令是
xdotool key XF86AudioPlay
,但是當我通過轉到Settings > Keyboard > Application Shortcuts來製作鍵盤快捷鍵時。它似乎不起作用。- 當我按下我設置為Super+F11的鍵盤快捷鍵時,我的 CPU 使用率會上升一點,這意味著該快捷鍵正在工作。我通過更改快捷方式執行的命令來確認這一點
exo-open --launch WebBrowser
,正如您可能認為的那樣,當我按下Super+F11時會打開我的網路瀏覽器。- 現在因為我知道一點 C/C++,所以我創建了這個包裝程序,它做同樣的事情
#include <stdlib.h> int main() { system("xdotool key XF86AudioPlay"); }
並映射了執行該程序的快捷方式,但是唉!它仍然不起作用。
當我按下筆記型電腦鍵盤上的預設播放/暫停按鈕時,如何獲取 XFCE 執行的命令,因為這似乎播放/暫停在後台播放的任何媒體。
我在 Arch Linux 上使用 XFCE。我通常在 rhytmbox 音樂播放上聽音樂。
如果您只想控制,
rhythmbox
那麼rhythmbox-client --play
播放歌曲或rhythmbox-client --pause
暫停歌曲就足夠了。但我發現這個軟體
playerctl
在一些 Arch wiki 中呼叫,它控制目前播放的媒體。我不是 100% 確定它的優先級是什麼,但是當我打開一個 YouTube 影片時,它會預設控制它而不是搞亂 Rhythmbox。要在播放和暫停之間切換,請執行playerctl play-pause
. 要轉到您執行的下一個影片/音樂,以及您執行playerctl next
的上一個影片/音樂playerctl previous
。我不能 100% 確定這是否適用於任何其他發行版,或者它是否可用,但它適用於我在 Arch 上。
Rhythmbox 似乎支持使用
rhythmbox-client --play/--pause
發送的命令和 D-Bus 命令dbus-send
,正如AskUbuntu 上的這個問題和U&L.SE 上的這個問題中所解釋的那樣,連結自 AskUbuntu 答案。簡而言之,
dbus-send
命令將是:dbus-send --print-reply --dest=org.mpris.MediaPlayer2.rhythmbox /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause
條件是需要先啟用 Rhythmbox 的 MPRIS API。
但是,如果您還需要使用這些相同的按鍵來控制任何 YouTube 影片,您可能需要這些按鍵來啟動一個腳本,該腳本確定哪個播放器目前正在播放,並將正確的命令發送到 Rhythmbox 或任何網路瀏覽器您用來播放 YouTube 影片的(或其他應用程序)。對於瀏覽器,需要為正確的瀏覽器選項卡發送命令/按鍵,這不一定是目前選項卡…