Poprawianie odpowiedzi Waschtl w tym wątku, abyś mógł ZARÓWNO SŁUCHAĆ I NAGRYWAĆ dźwięk aplikacji:
Najpierw szukamy naszego domyślnego wyjścia i umieszczamy jego nazwę ujścia w $DEFAULT_OUTPUT
:
$ pacmd list-sinks | grep -A1 "* index"
* index: 1
name: <alsa_output.pci-0000_00_1b.0.analog-stereo>
$ DEFAULT_OUTPUT=$(pacmd list-sinks | grep -A1 "* index" | grep -oP "<\K[^ >]+")
$ echo $DEFAULT_OUTPUT
alsa_output.pci-0000_00_1b.0.analog-stereo
Następnie tworzymy połączony zlew, który ma tylko jedno urządzenie podrzędne: $ DEFAULT_OUTPUT . Dźwięk generowany przez aplikację (źródło) zostanie przesłany do zlewu podrzędnego (tj. Rzeczywista moc wyjściowa), a my również go nagramy. Różni się od zlewu zerowego, w którym dźwięk źródłowy nie jest przekazywany.
$ pactl load-module module-combine-sink \
sink_name=record-n-play slaves=$DEFAULT_OUTPUT \
sink_properties=device.description="Record-and-Play"
sink_properties
jest opcjonalny i może powodować błędy, jeśli używasz spacji w nazwie opisu.
Następnie moglibyśmy użyć pactl move-sink-input ...
polecenia odpowiedzi Waschtla (z funkcją Record-n-Play zamiast Steam ), ale GUI pavucontrol
jest prostsze (i doskonałe do sprawdzania / rozwiązywania problemów):
$ sudo apt-get install pavucontrol
$ pavucontrol &
Następnie odtwarzamy dźwięk w aplikacji, którą chcemy nagrać. W pavucontrol
Playbackzakładce wybieramy z rozwijanej listy aplikacji: „Record-and-Play” .
Wreszcie, jesteśmy w stanie nagrywać i słuchać jednocześnie! ( lame przykład mp3, uruchom na pierwszym planie)
$ parec --format=s16le -d record-n-play.monitor | \
lame -r --quiet -q 3 --lowpass 17 --abr 192 - "temp.mp3"
Lub możemy nagrywać w tle i zatrzymać w dowolnym momencie:
$ parec --format=s16le -d record-n-play.monitor | \
lame -r --quiet -q 3 --lowpass 17 --abr 192 - "temp.mp3" \
> /dev/null &1>/dev/null
$ killall -q parec lame
NB:
- Aby cofnąć wiadomość lub ponowić procedurę: Usuń lub zresetuj zlewy za pomocą tej odpowiedzi .
pulseaudio -k
działa świetnie, aby zresetować wszystko do ustawień domyślnych sesji.
- Jeśli zmienimy domyślne wyjście w Ustawieniach dźwięku systemu, niestandardowe ustawienie Odtwarzania aplikacji zostanie zastąpione i będziemy musieli wrócić w pavucontrol, aby przywrócić łączny interfejs.
- Aby móc słuchać dźwięku z kilku „prawdziwych” interfejsów (np. Słuchawek, wyjścia HDMI itp.), Powinniśmy uwzględnić wszystkie „rzeczywiste” wyjścia, których możemy użyć do słuchania, jako slink slave z funkcją nagrywania i odtwarzania , takich jak:
pactl load-module module-combine-sink sink_name=record-n-play slaves=real-output-1,real-output-2
.
EDYCJA: Uważaj, ponieważ od Ubuntu 18 (być może również 17), połączony zlew staje się domyślnym systemowym urządzeniem wyjściowym, a nie rzeczywistym urządzeniem wyjściowym. Dlatego zmiana głośności za pomocą ikony dźwięku w zasobniku systemowym wpływa na dźwięk nagrania. Obejście: Po utworzeniu połączonego zlewu otwórz pavucontrol
kartę Wyjście. Wybierz „Widok: wirtualne urządzenia wyjściowe” i zresetuj głośność połączonego zlewu do 100%. Następnie wybierz „Widok: sprzętowe urządzenia wyjściowe” i naciśnij zieloną ikonę „Zdefiniuj jako alternatywę” na rzeczywistym urządzeniu wyjściowym.