切换默认声音输出设备的简便方法


21

我想要一种更简便的方法,将默认声音设备从声卡更改为USB耳机。

当前,它需要非常精确的右键单击,左键单击,另一个右键单击以及另外两次左键单击。

理想情况下,我可以将其与快捷键交换。(在XP中,这要容易一些,但幅度不大。)

首选软件解决方案,但我愿意接受使用硬件的建议。

我目前正在运行Windows 7。


告诉我怎么回事儿!Windows应该被设计为易于使用。Pfft
Will Sheppard

Answers:


16

免费和开源:SoundSwitch

在此处输入图片说明


看起来很酷。我将不得不尝试一下。
MBraedley

不错!可以!
Pedro77

看起来像原始作者Jeroen Pelgrims在2015年8月将开发移交给了Antoine Aflalo,后者在Windows 10上对其进行了更新,并将开发活动移至github上的Belphemur / SoundSwitch
robertpateii

1
这是一个很棒的程序。提示:您可以通过以下方式重命名声音设备:1)运行c:\windows\system32\control.exe mmsys.cpl2)右键单击声音设备->属性。重新启动程序后,新名称将更新为SoundSwitch。
np8

12

我使用NirCMD,这是一个漂亮的命令行工具,它使您可以使用脚本来编辑许多Windows设置。

在这种情况下,

nircmd.exe setdefaultsounddevice "USB Headset"

我使用它将主显示器切换为电视,然后通过HDMI将声音输出到该设备:

nircmdc.exe setprimarydisplay \\.\DISPLAY7
nircmdc.exe setdefaultsounddevice "SONY TV-4"

9

使用AutoIt

主要优点是您无需安装任何软件。开箱即用。创建工具后,请在桌面上放置快捷方式以切换设备。

如何设定

  1. 使用记事本创建一个新的文本文件,然后复制并粘贴代码

    Run("c:\windows\system32\control.exe mmsys.cpl")
    WinWaitActive("Sound")
    WinSetOnTop ("Sound","Sound", 1 )
    send("{DOWN}")
    if ControlCommand("Sound", "", 1002, 'IsEnabled') Then
        ControlClick("Sound", "Set Default", 1002)
        $message = "Speakers"
    else
        send("{DOWN}")
        ControlClick("Sound", "Set Default", 1002)
        $message = "Headset"
    EndIf
    WinClose("Sound")
    TrayTip("", $message, 5)
    Sleep(2000)
    
  2. send("{DOWN}")根据需要编辑第4行和第8行。上面的示例代码仅在设备#1和#2之间切换。您必须根据需要编辑两行。请参阅下面的说明。

  3. 用您的对应设备名称或类似名称替换“扬声器”“耳机”
    以后,如果您切换声音设备,此提示将在您的任务栏中显示5秒钟

  4. 在非英语Windows版本上,必须用本地化的按钮文本替换第6行和第10行中的“ 设置默认值”
    在此处输入图片说明

  5. 将文件另存为something.au3

  6. 下载AutoIt的压缩版本并解压缩。转到子文件夹Aut2Exe并启动Aut2exe.exe,将.AU3脚本转换为.EXE文件。你完成了

引用所有AutoIt命令


或使用AutoHotKey

基本上是相同的,只是使用AutoHotKey。按键绑定是在脚本中完成的,#!z这意味着每次按下Alt+ Win+ 时,都z在设备#1和#2之间切换。

如何设定

  1. 将下面的代码粘贴到文本文件并将其另存为 SoundToggle.ahk

    #!z::
    Run, c:\windows\system32\control.exe mmsys.cpl    
    WinWaitActive, Sound
    WinSet, AlwaysOnTop, On, Sound    
    Send, {DOWN}    
    ControlGet, MyState, Enabled, , Button2
    If (MyState = 1){
        ControlClick, Button2, A
    } Else {
        Send, {DOWN}
        ControlClick, Button2, A
    }    
    WinClose, Sound        
    return
    
  2. 下载AutoHotKey(Unicode 32位)并解压缩AutoHotKey.exe

  3. 创建该.EXE的快捷方式,并根据自己的路径修改目标行

    "C:\myfolder\AutoHotkey.exe" "C:\myfolder\SoundToggle.ahk"
    
  4. 将快捷方式移到您的启动文件夹


如何编辑send("{DOWN}")线

使用Win+ 打开声音面板,R然后输入mmmm.cpl声音控件。您想知道必须按几次DOWN键才能到达第一个声音设备,以及DOWN再次按几次才能到达第二个设备。

例如,要切换3号和5号设备,您必须按下3次send("{DOWN 3}"),然后再向下两次按下2次send("{DOWN 2}")才能到达第五个设备(3倍向下+ 2倍向下=第五个设备)。你明白了。

在此处输入图片说明


Autohotkey真的很整洁。请注意,sleep, 100发送{Down}键和执行操作之间可能需要a ControlGetEnabled否则,我的脚本无法正确识别状态。
Wizongod '16

另外,您还必须安装Autoit并编写脚本代码,我认为第一个解决方案更简单实用。
Arana

8

这个名为“ Coastal Audio Changer ”的应用程序应可在Windows 7上使用。自2012年起,它有免费试用版,购买价格为3美元。作者Andrew Bailey在该专用Coastal Audio Changer网站上拥有试用和购买链接。


我最终使用了该应用程序的试用版,然后购买了它。起初是个小问题,但后来作者于2011年4月发布了一个新版本,现在我喜欢它。这是完美的,完全值得5美元。:)
robertpateii

6
使用这个现在因为它更简单,更好地工作,而且是开源: soundswitch.codeplex.com
robertpateii

1
您能在这里总结解决方案吗?当该链接消失时(如果不是),您的答案将变得毫无用处。
Joris Groosman '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.