Как получить предупреждение, когда мой входной объем включен, и выключите его если я, так требуйте?

Как можно сказать именем, я - дополнительная параноидальная Panda и для защиты моего бамбука, я не хочу, чтобы мой входной объем шел на всякий случай, если я получаю некоторое шпионское ПО, которое слушает мой звуковой вход. В основном я просто хочу быть максимально в безопасности так, чтобы никакая другая Panda не слушала в на моих бамбуковых секретах Panda (куда я поместил все это).

Таким образом, в основном это - то, что я хочу, сценарий который:

  • Проверки, является ли входной объем для моего микрофона (или какие-либо звуковые устройства ввода данных) на 0% равномерно

  • Предупреждает меня через notify-send каждые 5 минут, если это идет

  • Опция в рамках сценария (как булевская переменная или что-то), который не находится на по умолчанию, но если это включено, сделает его так, чтобы, когда входной объем идет, я был предупрежден, что это шло и было выключено, и для сценария, очевидно, также (вероятно, прежде, чем предупредить меня) для выключения входного объема

  • Может просканировать несколько входных источников так, чтобы, например, если у меня есть 2 микрофона, 1, был отключен звук, но другой не, это не просто предполагает, что все хорошо

Я выполняю Ubuntu GNOME 15.10 с GNOME 3.18. Как это может быть сделано? Я не ожидаю там быть одним (вот почему, я прошу сценарий), но если существует приложение, которое может сделать это, затем рекомендуйте это.

2
задан 17 January 2016 в 01:14

1 ответ

Вот простой сценарий, который сканирует данный входной источник pulseaudio для того, чтобы быть muted*.

Источник может быть дан как 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 дополнительный флаг должен вызвать отключение звука нашего источника.


Для меня следующая строка в качестве примера запросит бесшумное состояние моего микрофона (индекс 2) каждые 5 минут, и это вынужденно отключит звук его, если это было нес отключенным звуком.

./micmute 2 300 --force

* я предпочел отключать звук по регулированию громкости к 0 из-за преимущества для восстановления предыдущих параметров громкости на неотключении звука.

3
ответ дан 2 December 2019 в 02:53

Другие вопросы по тегам:

Похожие вопросы: