web-dev-qa-db-fra.com

Changer de périphérique audio par défaut avec un fichier de commandes

J'essaie d'écrire un fichier de commandes sous Windows 10 qui me permet de basculer entre mon casque et mes haut-parleurs en tant que périphérique audio par défaut lorsque je l'exécute. Je ne veux utiliser aucun logiciel tiers.

J'ai essayé de chercher, mais je n'ai trouvé que d'anciens scripts qui ne semblent pas fonctionner et qui font également référence à un chemin HKCU:\Software\Microsoft\Windows\CurrentVersion\Applets\Volume Control\ qui semble ne plus exister. Je ne trouve aucune information à ce sujet dans le registre Windows 10, et je ne suis pas à l'aise avec le fait de trop jouer avec le registre si je ne suis pas sûr de ce que je fais.

18
zerothehero

Je vous suis reconnaissant de ne pas utiliser de logiciel tiers, mais vous pouvez utiliser Nircmd avec les commandes si cela ne vous dérange pas d’utiliser un fichier exe de ~ 100 Ko. :

nircmd setdefaultsounddevice "Speakers" 1

ou

nircmd setdefaultsounddevice "Headphones" 1

Vous devez vous assurer que vous utilisez le nom exact de vos périphériques audio, comme indiqué à la rubrique Playback Devices (cliquez avec le bouton droit de la souris sur le contrôle du son dans la barre d'état système). Il peut être plus facile de les renommer sous Properties en noms plus simples, en particulier si les noms s’entrechoquent.

Le 1 à la fin de la commande signifie "périphérique par défaut". Utiliser 2 signifie "Périphérique de communication par défaut".


Si vous ne voulez vraiment pas utiliser un outil tiers, voici une diff d'une clé de registre qui semble changer lorsque je change de périphérique audio par défaut. Cela peut vous être utile, mais je ne sais pas exactement ce que c'est faire. Ce n'est pas aussi simple qu'un 1 ou un 0 pour indiquer s'il s'agit d'un défaut, semble-t-il.

enter image description here

25
Jonno

Depuis Windows 8 (ou peut-être plus tôt?), La configuration audio de l'ordinateur est stockée dans HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Render. Sous Render, il y a des clés nommées par le GUID, chacune contenant la valeur DeviceState dword à la racine. Mais comment est-ce codé?

Voir Constantes DEVICE_STATE_XXX sous MSDN :

  • 1 actif
  • 2 personnes handicapées
  • 4 non présent
  • 8 Unplugged

Donc, le script powershell/bat pour basculer entre 1 et 2 devrait faire l'affaire.

EDIT: pour obtenir le nom de périphérique lisible par un humain, lisez {b3f8fa53-0004-438e-9003-51a46e139bfc},6 sous la sous-clé Properties

6
Aziz Kabyshev