我正在寻找任何解决方案(算法,程序安装......),以便在我们摘下耳机时停止音乐,
谢谢 !
答案1
这是默认情况,因为 ubuntu 14.04 为您的耳机和扬声器设置了不同的配置文件。只需先将扬声器静音,然后插入耳机,它将激活耳机配置文件,您就可以听音乐了,当您取下耳机时,它将返回到最初静音的扬声器配置文件,因此它将被静音。
答案2
实际上,它有 1 秒的延迟。由于我找不到任何因拔掉耳机插头而触发的系统事件,所以我使用了 1 秒延迟循环。
使用以下方法检查接收器 ID 和端口名称:
pactl list sinks
然后在监视端口状态的脚本中更改它们,然后发送 MPRIS 暂停命令:
#!/bin/bash sink_id=1 port_name_headset=analog-output-headphones port_name_speaker=analog-output-speaker while sleep 1 ; do cur_port=`pactl list sinks | awk '/Active Port:/ { print $3 }' | awk NR==$(( $sink_id + 1 ))` echo -n -e "\n was $prev_port now $cur_port" if [[ "$prev_port" = "$port_name_headset" && "$cur_port" = "$port_name_speaker" ]] then echo " << Pause >>" gdbus call --session \ --dest org.mpris.MediaPlayer2.vlc.instance$(pgrep vlc) \ --object-path /org/mpris/MediaPlayer2 \ --method org.mpris.MediaPlayer2.Player.Pause fi prev_port=$cur_port done
笔记:
这仅适用于 VLC,但可以修改以覆盖其他 MPRIS 播放器。请参阅如何在播放电影时停止 xscreensaver?
如果您只是想静音,请使用此命令(只需更改
id
):pactl set-sink-mute id 1