Canvi de dispositius d’audio amb PowerShell

Després de comprar l’Stream Deck de Elgato li trobava a faltar la manera de poder canviar entre dispositius d’àudio en calent.

Les investigacions em varen portar cap a PowerShell però de sèrie no pot fer aquestes funcions (que sàpiga) però si amb aquesta extensió que vaig trobar a github:

AudioDeviceCmdlets: https://github.com/frgnca/AudioDeviceCmdlets

Amb ella podem llistar els dispositius (tant de reproducció com de gravació) i poder canviar-lo, a part de canviar valors com el volum, etc.

Amb aquesta comanda llistem els dispositius

PS C:\Users\User> Get-AudioDevice -list

Index : 1
Default : False
Type : Playback
Name : Altavoces (Steam Streaming Microphone)
ID : {0.0.0.00000000}.{1a5fae48-a964-4d5a-ba5c-509e63ea6afd}
Device : CoreAudioApi.MMDevice

Index : 2
Default : True
Type : Playback
Name : Altavoces (Realtek High Definition Audio)
ID : {0.0.0.00000000}.{265fcc99-7fa6-4fa2-97bf-93236b4a1391}
Device : CoreAudioApi.MMDevice

Index : 3
Default : False
Type : Playback
Name : BenQ PD2500Q (NVIDIA High Definition Audio)
ID : {0.0.0.00000000}.{45ef6901-5ee0-4752-a0d9-d2fad76fe12c}
Device : CoreAudioApi.MMDevice

Index : 4
Default : False
Type : Playback
Name : Altavoces (Steam Streaming Speakers)
ID : {0.0.0.00000000}.{5deb3169-df93-4c68-b73d-a576584badc6}
Device : CoreAudioApi.MMDevice

Index : 5
Default : False
Type : Recording
Name : Línea de entrada (Realtek High Definition Audio)
ID : {0.0.1.00000000}.{17278a24-459b-4768-b332-b553a81ec097}
Device : CoreAudioApi.MMDevice

Index : 6
Default : False
Type : Recording
Name : Micrófono (Steam Streaming Microphone)
ID : {0.0.1.00000000}.{1bd0aa36-eedd-48a6-a9a5-404e80a7bc14}
Device : CoreAudioApi.MMDevice

Index : 7
Default : True
Type : Recording
Name : Micrófono (HD Pro Webcam C920)
ID : {0.0.1.00000000}.{2831395a-a41e-4285-9078-cb3558e5a024}
Device : CoreAudioApi.MMDevice

Necessitem l’Index al que volem canviar i podem canviar llençant aquesta comanda:

Set-Audiodevice -Index <yournumber>

Amb aquesta comanda ja tindrem canviat el dispositiu, però, com ho podem cridar? Si intentem cridar directament un fitxer d’script ens trobem que no tenim permisos per executar el (nostre propi) script, que per cert, són amb extensió ps1.

Tenim dos opcions, autoritzar TOTS els permisos i per tant no tenir problemes, o per altre part cridar powershell.exe amb alguns comandament extra quan cridem l’script.

powershell -executionPolicy bypass -file "c:\path\to\file\haedphones.ps1"

Amb això saltem els permisos d’execució de l’script… ehm… sí… amb aquesta comanda i jasta, seguretat a tope a powrshell si pots llançar powrshell des de linia de comandes… “hurra”

Evidentment tindrem que fer un altres script per tornar al dispositiu anterior, “obvious”.

Espero que us hagi servit ;)

1 2 3 34