GNU/Linux >> Znalost Linux >  >> Debian

Jak zajistit, aby zvuk (PulseAudio) fungoval s WSL2

Tento článek vysvětluje, jak získat zvuk (PulseAudio) pro úpravu WSL2 v systému Microsoft Windows.

Pokud budete postupovat podle těchto pokynů, získáte funkční zvuk s PulsAudio na Windows / WSL2 pro konzolové a GUI aplikace (článek se však nezabývá spouštěním grafických aplikací na WSL2). Mikrofon tedy nefunguje, nebo alespoň nefungoval mně (a například jsem ho stejně nepotřeboval).

Microsoft plánuje přidat do WSL2 vestavěnou podporu pro spouštění grafických aplikací a zvuku. Ale do té doby můžete použít tyto pokyny, aby zvuk fungoval na WSL2.

Pokud stále používáte WSL1, podívejte se, jak upgradovat na WSL2 zde. Zda již WSL2 používáte, můžete zkontrolovat spuštěním wsl -l -v v prostředí Windows PowerShell. Zde by měl být uveden jakýkoli počítač používající WSL2, přičemž 2 jako jejich VERSION; Pokud nevidíte číslo verze nebo chybovou zprávu, máte WSL1.

Níže je snímek obrazovky ukazující Windows Terminal se systémem Ubuntu / WSL2, kde pro přehrávání hudby používám hudební přehrávač cmus Console. Neslyšíte hudbu, abyste viděli, zda to skutečně funguje, takže tento snímek obrazovky je docela k ničemu, ale potřeboval jsem snímek obrazovky, který by se dal použít jako miniatura položky?️.

Jako zcela nezávislou referenci v případě, že chcete použít cmus na WSL2, upravte jej ~/.config/cmus/rc Soubor (vytvořte jej, pokud neexistuje) a přidejte jej set output_plugin=pulse aby zvukový výstup fungoval na ploše Windows.

Takto funguje zvuk ve WSL2

1. Stáhněte si PulseAudio pro Windows.

V systému Windows:

Nejnovější verze PulseAudio pro Windows 10, kterou jsem našel, je verze 7 zde, vytvořená pro X2Go. Můžete buď navštívit tento odkaz a kliknutím na Snapshot stáhnout PulseAudio pro Windows. nebo kliknutím sem jej stáhněte.

Toto bude staženo .tar.gz Archiv. Rozbalte tento archiv a přejmenujte složku, která obsahuje pulseaudio.exe a další spustitelné soubory a soubory PulseAudio na pulse a zkopírujte jej znovu pulse Složka také C: (měli byste tedy mít například C:pulsepulseaudio.exe ).

2. Nakonfigurujte PulseAudio pro Windows.

V systému Windows:

Vytvořte soubor s názvem config.pa v C:pulse . Abyste mohli přejmenovat příponu souboru ve Windows, musíte aktivovat zobrazení přípon souborů v průzkumníku souborů.

V tomto C:pulseconfig.pa Soubor, přidejte následující a po dokončení soubor uložte:

load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;172.16.0.0/12
load-module module-esound-protocol-tcp auth-ip-acl=127.0.0.1;172.16.0.0/12
load-module module-waveout sink_name=output source_name=input record=0

Zde povolujeme připojení od 127.0.0.1 toto je místní IP adresa a 172.16.0.0/12 Toto je výchozí úložný prostor (172.16.0.0 – 172.31.255.255) pro WSL2.

3. Nakonfigurujte PulseAudio ve WSL2.

Na WSL2 (Ubuntu / cokoli, co používáte):

Ujistěte se, že máte libpulse0 nainstalováno, jinak to nebude fungovat. Název a příkaz k instalaci bude záviset na distribuci Linuxu, kterou používáte, takže ji budete muset najít a nainstalovat. Na Ubuntu / Debian jej můžete nainstalovat pomocí:

sudo apt install libpulse0

Stále musíte použít ~/.bashrc Soubor textovým editorem – následujícím příkazem jej upravíme pomocí editoru konzole Nano:

nano ~/.bashrc

Přejděte dolů na konec tohoto souboru a vložte tam následující:

export HOST_IP="$(ip route |awk '/^default/{print $3}')"
export PULSE_SERVER="tcp:$HOST_IP"
#export DISPLAY="$HOST_IP:0.0"

Zde můžete odstranit značky komentáře export DISPLAY Řádek pro export také DISPLAY Proměnná prostředí (standardně jsem ji okomentoval, protože ji ne každý potřebuje). To je vyžadováno, pokud chcete použít něco jako VcxSrv ke spouštění grafických aplikací z WSL2 (s konfigurací v tomto článku budou mít grafické aplikace běžící ve WSL2 podporu zvuku).

Až budete hotovi, uložte soubor a ukončete Nano (Ctrl + o , Enter pak x uloží soubor a existuje nano). Další zdroj ~/.bashrc Soubor pro použití nových proměnných prostředí:

source ~/.bashrc

4. Nainstalujte PulseAudio jako službu Windows.

V systému Windows:

Ke spuštění PulseAudio jako služby Windows použijeme NSSM. Stáhněte si NSSM odtud, rozbalte stažený archiv a zkopírujte win64 nssm.exe spustitelný také C:pulse . Můžete to najít v win64 Složka ve staženém zip archivu NSSM.

Dále najděte PowerShell v nabídce Start systému Windows, klikněte pravým tlačítkem na položku PowerShell a vyberte Run as Administrator .

V PowerShellu zadejte nebo vložte:

C:pulsenssm.exe install PulseAudio

Po spuštění tohoto příkazu se zobrazí grafické uživatelské rozhraní NSSM. V jeho Application Tab, použijte:

  • Cesta aplikace:C:pulsepulseaudio.exe
  • Počáteční adresář:C:pulse
  • Argumenty:-F C:pulseconfig.pa --exit-idle-time=-1
  • Název služby (měl by být vyplněn automaticky při otevření dialogu NSSM):PulseAudio

V poli Argumenty používáme -F sdělující PulseAudio, aby spustil zadaný skript při spuštění při --exit-idle-time=-1 deaktivuje možnost vypnout démona po několika sekundách nečinnosti.

Na Details Tab, zadejte PulseAudio provedením Display name Oblast:

Až budete s tímto vším hotovi, klikněte na Install service Tlačítko.

V případě, že později budete chtít tuto službu Windows odebrat, spusťte PowerShell znovu jako správce a tentokrát spusťte následující příkaz pro odebrání služby:

C:pulsenssm.exe remove PulseAudio

5. Spusťte službu PulseAudio Windows.

Spusťte Správce úloh systému Windows a klikněte na Services Tab a přejděte na PulseAudio. Když najdete službu PulseAudio, klikněte na ni pravým tlačítkem a vyberte Start to:

A máme hotovo. PulseAudio nyní funguje. Měli byste být schopni používat aplikace s podporou zvuku ve WSL2 a slyšet jejich zvukový výstup na ploše Windows 10.

Vzhledem k tomu, že jsme PulseAudio nainstalovali jako službu na Windows 10, spustí se automaticky po spuštění, když se přihlásíte na plochu Windows, takže ji nemusíte znovu spouštět ručně.

Reference:Diskuse o Ubuntu, toto, toto a X2Go Wiki.


Debian
  1. Linux – Jak zajistit, aby Oracle Java 7 fungoval se Setcap Cap_net_bind_service+ep?

  2. Linux – Jak získat Grindeq (latexový plugin pro Word) pro práci s Wordem ve víně?

  3. Jak dostat Jshint do práce?

  1. Jak přimět Vim, aby správně spolupracoval s Tmux?

  2. Jak začít s Juju?

  3. Jak získat systémové statistiky pomocí node.js

  1. Jak zajistit, aby Uuencode fungoval?

  2. Jak zajistit, aby webová kamera fungovala s Ubuntu 14.04?

  3. Učím se Perl, ale jak dostanu 5.14 na Windows?