当我的输入音量打开时如何收到警报,如果我愿意,如何将其关闭?

当我的输入音量打开时如何收到警报,如果我愿意,如何将其关闭?

从名字就可以看出,我是一只特别多疑的熊猫,为了保证竹子的安全,我不想打开输入音量,以防万一有间谍软件监听我的声音输入。基本上,我只是想尽可能地安全,这样就不会有其他熊猫偷听到我的熊猫竹子秘密(我把所有东西都放在那里)。

所以基本上这就是我想要的,一个脚本:

  • 定期检查麦克风(或任何声音输入设备)的输入音量是否为 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因为取消静音时可以恢复以前的音量设置。

相关内容