![当我的输入音量打开时如何收到警报,如果我愿意,如何将其关闭?](https://linux22.com/image/1086631/%E5%BD%93%E6%88%91%E7%9A%84%E8%BE%93%E5%85%A5%E9%9F%B3%E9%87%8F%E6%89%93%E5%BC%80%E6%97%B6%E5%A6%82%E4%BD%95%E6%94%B6%E5%88%B0%E8%AD%A6%E6%8A%A5%EF%BC%8C%E5%A6%82%E6%9E%9C%E6%88%91%E6%84%BF%E6%84%8F%EF%BC%8C%E5%A6%82%E4%BD%95%E5%B0%86%E5%85%B6%E5%85%B3%E9%97%AD%EF%BC%9F.png)
从名字就可以看出,我是一只特别多疑的熊猫,为了保证竹子的安全,我不想打开输入音量,以防万一有间谍软件监听我的声音输入。基本上,我只是想尽可能地安全,这样就不会有其他熊猫偷听到我的熊猫竹子秘密(我把所有东西都放在那里)。
所以基本上这就是我想要的,一个脚本:
定期检查麦克风(或任何声音输入设备)的输入音量是否为 0%
notify-send
如果处于开启状态,每 5 分钟提醒我一次脚本中的一个选项(比如布尔值或其他值)默认情况下不启用,但如果启用,则当输入音量打开时,我会收到警报,告知它已打开并已关闭,并且脚本显然也会(可能在提醒我之前)关闭输入音量
能够扫描多个输入源,例如,如果我有 2 个麦克风,其中 1 个静音,而另一个不静音,它不会假设一切正常
我正在运行带有 GNOME 3.18 的 Ubuntu GNOME 15.10。该怎么做?我不指望有这样的程序(这就是我要求提供脚本的原因),但如果有可以做到这一点的应用程序,请推荐它。
答案1
这是一个简单的脚本,用于扫描给定的 pulseaudio 输入源是否被静音*。
源可以用 pulseaudio 源索引号来表示,如下所示:
pactl list sources
如果源未静音,则桌面通知中将显示警告消息。
#!/bin/bash
#
# Forces a pulseaudio source to be muted
#
# Usage:
# micmute <source> <wait> <--force>
# <source>: pulseaudio source index number
# <wait>: seconds to wait for checking
# <--force>: force muting microphone and notify
source="$1"
wait="$2"
force="$3"
echo "Scanning input #$source every $wait seconds."
while true; do
if ! (pactl list sources | sed -n '/^Source #'"$source"'/,/^$/p' | grep "Mute: yes"); then
if [[ $force == "--force" ]]; then
pactl set-source-mute $source 1
notify-send "Muting input $source"
else
notify-send "WARNING - input $source is not muted"
fi
fi
sleep $wait ## CLI option seconds to wait
done
使用任意名称(例如micmute
)保存该脚本并赋予其可执行权限。然后可以使用以下方式调用该脚本
./micmute <source> <wait> [--force]
<source>
是需要扫描的麦克风源的索引号。
<wait>
将定义重复查询静音源设备的时间(以秒为单位)。
--force
是一个可选标志,用于强制将我们的源静音。
对我来说例子line 将每 5 分钟查询一次我的麦克风 (索引) 的静音状态2
,如果取消静音,它将强制静音。
./micmute 2 300 --force
* 我更喜欢静音而不是设置音量,0
因为取消静音时可以恢复以前的音量设置。