自動切換預設聲音輸入設備

自動切換預設聲音輸入設備

除了 Logitech G930 無線耳機的鉸鍊式麥克風之外,我還購買了一個固定在辦公桌上的新麥克風。

當我坐在辦公桌前時,我希望麥克風成為預設設備。一旦我離開辦公桌並放下耳機麥克風,我希望我的預設輸入裝置切換到該裝置。

當我將耳機物理靜音/鉸鏈時,顯然它會向我的作業系統發送某種事件,因為它知道它已靜音並在此處顯示 eG:

[ 影像]

我做了一些研究並發現了類似的軟體尼爾軟體,但我怎麼看,沒有辦法獲得靜音狀態。顯然它可以用 C++ CoreAudio 來完成,我不想只是為了十行程式碼而下載 3GB 編譯器和 Visual Studio。

是否有適用於其他語言(例如 Python 或 Node.js/替代工具)的 CoreAudio 綁定來實現我的需求?

答案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;
}

相關內容