Pulseaudio loopback boşaltma ses çıkış cihazları


12

Pulseaudio geridöngü çıkışlarını nasıl kaldıracağımı öğrenmeye çalışıyorum. Akış için mikrofonumu ve sistem sesini yakalamak için geri döngü karışımı oluşturmak için pulseaudio kullanıyorum. Bu kodu içeren komutumu her başlattığımda:

pactl load-module module-null-sink sink_name=mix 
pactl load-module module-loopback sink=mix
pactl load-module module-loopback sink=mix

avconv ...

pactl unload-module module-loopback

kapatıldıktan sonra iki çıkış aygıtını geride bırakır. Unload-module komutu kayıttan kurtulur ancak çıkışlar için bir komut bulamıyorum.

Yanıtlar:


18

Modülleri boşaltmanın uygun yolu

Darbeli Ses'e yüklenen bir modülün boşaltılması, modülün yükleme sırasında verilen dizin numarası ile yapılır:

pactl load-module module-null-sink sink_name=test
24

Yukarıdaki örnekte Pulseaudio sunucusu modülü dizin kimliğiyle yükledi 24. Bu modül aşağıdaki komutla kaldırılabilir:

pactl unload-module 24

Komut dosyanızın çıktısını ayrıştırmak zorunda kalacak pactl.

Modül numarasını bilmiyorsak, numarayı ve modül adını görüntüleyecek aşağıdaki komutu verebiliriz:

pactl list short modules

Daha yeni sürümler de isimle boşaltma yapılmasına izin verir:

pactl unload-module <name>

Hızlı ve kirli yöntem

Pulseaudio otomatik yumurtlama demonu olarak ayarlanmışsa (varsayılan begaviour olmalıdır), oturum açtıktan sonra yüklenen tüm modülleri hızlı bir şekilde boşaltarak PulseAudio sunucusunun sıfırlanmasıyla default.paçalıştırabiliriz:

pulseaudio -k

Bu, tüm modülleri komut dosyanızdan etkili bir şekilde kaldıracak ve çıkış için varsayılan havuzu yükleyecektir.


Tüm uygulamaların akışlarının kesilmesinden kurtulamayacağını belirtmek gerekir.
Aurelia

Lavabo adıyla modül numarası alın: MODULE_NUMBER=$(pacmd list-sinks | grep -E "^\s*name:|^\s*module:" | grep -A 1 -E "^\s*name: <MY-SINK-NAME>" | grep -oP "module: \K[0-9]+")nerede MY-SINK-NAMEo ne diyor. Kodda saklayın < >!
KrisWebDev

1
@ KrisWebDev: teşekkürler, daha genel bir yaklaşım için modül indekslerinin nasıl alınacağına dair bir satır ekledi.
Takkat

Büyük, o zaman bu olur: pactl list short modules | grep "sink_name=MY-SINK-NAME" | cut -f1 | xargs -L1 pactl unload-module. Adlandırılmış TÜM modülleri silme avantajına sahiptir MY-SINK-NAME(havuz adları benzersiz değildir).
KrisWebDev
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.