除了带有铰链麦克风的 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;
}