自动切换默认声音输入设备

自动切换默认声音输入设备

除了带有铰链麦克风的 Logitech G930 无线耳机外,我还购买了一个连接到我桌子上的新麦克风。

当我坐在办公桌前时,我希望麦克风是默认设备。当我离开办公桌并放下耳机麦克风时,我希望我的默认输入设备切换到那个。

当我物理地静音/铰接我的耳机时,显然它会向我的操作系统发送某种事件,因为它知道它已静音并将其显示出来,例如在这里:

[ 图像]

我做了一些研究,发现了类似尼尔软件,但在我看来,没有办法获得静音状态。显然可以用 C++ CoreAudio 来实现,我宁愿不为了一个十行代码而下载 3GB 的编译器和 Visual Studio。

是否有其他语言(如 Python 或 Node.js/Alternative Tools)的 CoreAudio Bindings 来实现我的需求?

答案1

我终于解决了这个问题https://github.com/frgnca/AudioDeviceCmdlets/在 PowerShell 脚本中。

$Microphone = "{0.0.1.00000000}.{50486949-aae2-4574-97fb-4660fd26b6f7}"
$Headset = "{0.0.1.00000000}.{4bf15a7e-d091-4bcb-ae8f-5cadfdcffca7}"

while (1) {
    $ActiveDevice = Get-AudioDevice -Recording
    $HeadSetObject = Get-AudioDevice -ID $Headset
    $HeadSetIsMuted = $HeadSetObject."Device"."AudioEndpointVolume"."Mute"
    if ($HeadSetIsMuted) {
        if ($ActiveDevice."ID" -eq $HeadSet) {
            Set-AudioDevice -ID $Microphone
        }
    } else {
        if ($ActiveDevice."ID" -eq $Microphone) {
            Set-AudioDevice -ID $Headset
        }
    }
    
    sleep 3;
}

相关内容