Cải thiện câu trả lời Waschtl của chủ đề này để bạn có thể LẮNG NGHE VÀ GHI âm thanh ứng dụng:
Đầu tiên, chúng tôi tìm đầu ra mặc định của mình và đặt tên chìm của nó vào $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
Sau đó, chúng tôi tạo ra một bồn rửa kết hợp chỉ có một nô lệ: $ DEFAULT_OUTPUT . Âm thanh do ứng dụng (nguồn) tạo ra sẽ được chuyển tiếp đến phần phụ nô lệ (tức là đầu ra thực) và chúng tôi cũng sẽ ghi lại nó. Nó khác với một bồn rửa rỗng , nơi âm thanh nguồn không được chuyển tiếp.
$ pactl load-module module-combine-sink \
sink_name=record-n-play slaves=$DEFAULT_OUTPUT \
sink_properties=device.description="Record-and-Play"
sink_properties
là tùy chọn và có thể lỗi nếu bạn sử dụng khoảng trắng trong tên mô tả.
Sau đó, chúng ta có thể sử dụng pactl move-sink-input ...
lệnh của câu trả lời Waschtl (với bản ghi-n-play thay vì steam ) nhưng GUI pavucontrol
đơn giản hơn (và tuyệt vời để kiểm tra / xử lý sự cố):
$ sudo apt-get install pavucontrol
$ pavucontrol &
Sau đó, chúng tôi phát một số âm thanh trong ứng dụng mà chúng tôi muốn ghi lại. Trong pavucontrol
Playbacktab, chúng tôi chọn trong danh sách thả xuống của ứng dụng: "Ghi và phát" .
Cuối cùng, chúng tôi rất tốt để ghi lại và lắng nghe cùng một lúc! ( ví dụ mp3 khập khiễng , chạy ở nền trước)
$ parec --format=s16le -d record-n-play.monitor | \
lame -r --quiet -q 3 --lowpass 17 --abr 192 - "temp.mp3"
Hoặc chúng ta có thể ghi lại trong nền và dừng lại bất cứ lúc nào:
$ 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
Lưu ý:
- Để hủy kết nối mọi thứ hoặc thử lại quy trình: Xóa hoặc đặt lại các bồn rửa bằng cách sử dụng câu trả lời này .
pulseaudio -k
hoạt động tuyệt vời để thiết lập lại mọi thứ về mặc định của phiên.
- Nếu chúng tôi thay đổi đầu ra mặc định trong Cài đặt âm thanh hệ thống, cài đặt Phát lại ứng dụng tùy chỉnh sẽ bị ghi đè và chúng tôi sẽ phải quay lại pavucontrol để đặt lại giao diện kết hợp.
- Để có thể nghe âm thanh từ một số giao diện "thực" (ví dụ: tai nghe, đầu ra HDMI, v.v.), chúng ta nên bao gồm tất cả các đầu ra "thực" mà chúng ta có thể sử dụng để nghe, như các nô lệ slink -n-play , như :
pactl load-module module-combine-sink sink_name=record-n-play slaves=real-output-1,real-output-2
.
EDIT: Coi chừng, vì Ubuntu 18 (cũng có thể là 17), bồn rửa kết hợp có xu hướng trở thành thiết bị đầu ra hệ thống mặc định, thay vì thiết bị đầu ra thực. Vì vậy, khi bạn thay đổi âm lượng bằng biểu tượng âm thanh trong khay hệ thống, nó sẽ tác động đến âm thanh ghi của bạn. Giải pháp thay thế: Sau khi tạo bồn rửa kết hợp, mở pavucontrol
trong tab Đầu ra. Chọn "Xem: Thiết bị đầu ra ảo" và đặt lại âm lượng của âm thanh kết hợp thành 100%. Sau đó chọn "Xem: Thiết bị đầu ra phần cứng" và nhấn biểu tượng màu xanh lá cây "Xác định thay thế" trên thiết bị đầu ra thực.