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 ;)