Я до сих пор не могу понять, как воспроизвести скрипт Python с движения. Вместо этого я просто запускаю сценарий bash, который создает текстовый файл. При запуске у меня есть фактический скрипт python, выполняющий цикл while, проверяющий, существует ли текстовый файл, и запустил остальную часть скрипта, как только он появится.
Ммм, так выглядит в документации pulseaudio.
man pulseaudio
У нас есть следующие переменные среды
$PULSE_SERVER: the server string specifying the server to connect to when a client asks for a sound server connection and doesn't explicitly ask for a specific
server. The server string is a list of server addresses separated by whitespace which are tried in turn. A server address consists of an optional address type speci‐
fier (unix:, tcp:, tcp4:, tcp6:), followed by a path or host address. A host address may include an optional port number. A server address may be prefixed by a string
enclosed in {}. In this case the following server address is ignored unless the prefix string equals the local hostname or the machine id (/etc/machine-id).
$PULSE_SINK: the symbolic name of the sink to connect to when a client creates a playback stream and doesn't explicitly ask for a specific sink.
Это должно позволить вам полностью заменить приемник pulseaudio, а если этого недостаточно, запустить наш собственный одноразовый сервер pulseaudio.
Ссылаясь на эту страницу ( https: // askubuntu.com / questions / 60837 / record-a-programs-output-with-pulseaudio ), мы узнаем о команде parec
/ pacat
(это псевдонимы), которая может запись и запись в стоки и потоки.
Собирая все это вместе, мы получаем следующую оболочку (которую я на самом деле не запускал - хотя мне удалось заставить этот метод работать на специальной основе)
sink_name="sink-$(date +%s)"
pacat $sink_name.monitor
parec -d steam.monitor | oggenc -b 192 -o /tmp/steam.ogg --raw - &
pid=$!
PULSE_SINK=$sink_name "$@"
kill $pid