Здесь вы столкнулись с давно нерешенной ошибкой Python, см. следующие ссылки:
Я добавил это как ответ, так как это кажется запутанным проявлением проблемы.
PulseAudio имеет аудио источники (, из которых исходит звук, например. микрофон )и опускаются(туда, куда он идет, например. динамики ). Приложения для записи подключаются к источнику , а приложения для воспроизведения аудио подключаются к приемнику . К сожалению, выходные данные приложения (и вход приемника)не считаются источником и не могут быть записаны, но есть способы обойти это.
В очень простом созвездии вы можете просто записать все, что слышите в данный момент, используя «мониторный источник»;у каждого приемника PulseAudio есть один. Вы можете запустить pactl list short sources
, чтобы найти имя этого приемника (имя будет заканчиваться на .monitor
), а затем записать прямо с него, используяparec --record --device $SOURCE
(не забывая о флагах аудиоформата ). Если у вас есть другая записывающая программа, использующая PulseAudio, вы можете использовать графический интерфейс pavucontrol
, чтобы изменить ее источник на вкладке Recording
, как только она начнет запись.
Немного сложнее, если вы хотите записать только конкретное приложение. PulseAudio имеет несколько встроенных -модулей, которые могут помочь в этом. Двумя релевантными здесь являются module-null-sink
и module-combine-sink
.
Вы можете создать эти приемники следующим образом (используйте pactl list short sinks
, чтобы найти имена приемников для использования в вашем комбайне -приемники):
pactl load-module module-null-sink sink_name=nullsink
pactl load-module module-combine-sink sink_name=combine slaves=nullsink,alsa_output.pci-0000_00_1b.0.analog-stereo
Теперь вы можете изменить соединения, чтобы соединить вещи, как описано в pavucontrol
. В этом примере это включает в себя настройку приложения для воспроизведения на комбинированный приемник ("Одновременный вывод..." )и настройку рекордера на запись с нулевого приемника ("Нулевой вывод" ).
Настройка этих подключений с помощью pactl
CLI также должна быть возможна, но это может быть немного сложнее.