仅当按下按键时才打开麦克风,就像全局一键通话一样(Windows 10)

仅当按下按键时才打开麦克风,就像全局一键通话一样(Windows 10)

Windows 10 中是否有内置方法可以关闭麦克风,直到我按下指定键?

如果没有,我该如何实现这个目标?

答案1

不,没有内置方式,默认为 Windows,用一个键来控制你的麦克风。

有很多软件选项可以添加此功能,有些甚至可以在全球范围内、全系统范围内实现此功能。

我建议使用成熟的工具,例如 AutoHotKey,它具有控制音量等声音功能。将麦克风音量调到最低与关闭麦克风音量相同:https://www.autohotkey.com/docs/commands/SoundSet.htm

答案2

这些是我使用 AutoHotKey 切换麦克风的脚本:基于论坛上的这篇文章

一键通

#include togglemic.ahk
$~ctrl:: ; read docs to replace this for your preferred hotkey
    ToggleMic()
    keyWait, ctrl
    ToggleMic()
return

切换器

ToggleMic(){
; 3 is my mic id number, run findmicid.ahk to find yours and replace 3 for your id
SoundSet, +1, MASTER, mute,3 
SoundGet, master_mute, , mute, 3

; uncomment bellow to show tooltips
; ToolTip, Mute %master_mute% 
; SetTimer, RemoveToolTip, 1000
; return

; RemoveToolTip:
; SetTimer, RemoveToolTip, Off
; ToolTip
; return
}

查找micid

SetBatchLines -1
SplashTextOn,,, Gathering Soundcard Info...

; Most of the pure numbers below probably don't exist in any mixer, but they're queried for completeness.
; The numbers correspond to the following items (in order): CUSTOM, BOOLEANMETER, SIGNEDMETER, PEAKMETER,
; UNSIGNEDMETER, BOOLEAN, BUTTON, DECIBELS, SIGNED, UNSIGNED, PERCENT, SLIDER, FADER, SINGLESELECT, MUX,
; MULTIPLESELECT, MIXER, MICROTIME, MILLITIME
ControlTypes = VOLUME,ONOFF,MUTE,MONO,LOUDNESS,STEREOENH,BASSBOOST,PAN,QSOUNDPAN,BASS,TREBLE,EQUALIZER,0x00000000, 0x10010000,0x10020000,0x10020001,0x10030000,0x20010000,0x21010000,0x30040000,0x30020000,0x30030000,0x30050000,0x40020000,0x50030000,0x70010000,0x70010001,0x71010000,0x71010001,0x60030000,0x61030000

ComponentTypes = MASTER,HEADPHONES,DIGITAL,LINE,MICROPHONE,SYNTH,CD,TELEPHONE,PCSPEAKER,WAVE,AUX,ANALOG,N/A

; Create a ListView and prepare for the main loop:
Gui, Add, Listview, w400 h400 vMyListView, Component Type|Control Type|Setting|Mixer
LV_ModifyCol(4, "Integer")
SetFormat, Float, 0.2  ; Limit number of decimal places in percentages to two.

Loop  ; For each mixer number that exists in the system, query its capabilities.
{
    CurrMixer := A_Index
    SoundGet, Setting,,, %CurrMixer%
    if ErrorLevel = Can't Open Specified Mixer  ; Any error other than this indicates that the mixer exists.
        break

    ; For each component type that exists in this mixer, query its instances and control types:
    Loop, parse, ComponentTypes, `,
    {
        CurrComponent := A_LoopField
        ; First check if this component type even exists in the mixer:
        SoundGet, Setting, %CurrComponent%,, %CurrMixer%
        if ErrorLevel = Mixer Doesn't Support This Component Type
            continue  ; Start a new iteration to move on to the next component type.
        Loop  ; For each instance of this component type, query its control types.
        {
            CurrInstance := A_Index
            ; First check if this instance of this instance even exists in the mixer:
            SoundGet, Setting, %CurrComponent%:%CurrInstance%,, %CurrMixer%
            ; Checking for both of the following errors allows this script to run on older versions:
            if ErrorLevel in Mixer Doesn't Have That Many of That Component Type,Invalid Control Type or Component Type
                break  ; No more instances of this component type.
            ; Get the current setting of each control type that exists in this instance of this component:
            Loop, parse, ControlTypes, `,
            {
                CurrControl := A_LoopField
                SoundGet, Setting, %CurrComponent%:%CurrInstance%, %CurrControl%, %CurrMixer%
                ; Checking for both of the following errors allows this script to run on older versions:
                if ErrorLevel in Component Doesn't Support This Control Type,Invalid Control Type or Component Type
                    continue
                if ErrorLevel  ; Some other error, which is unexpected so show it in the results.
                    Setting := ErrorLevel
                ComponentString := CurrComponent
                if CurrInstance > 1
                    ComponentString = %ComponentString%:%CurrInstance%
                LV_Add("", ComponentString, CurrControl, Setting, CurrMixer)
            }  ; For each control type.
        }  ; For each component instance.
    }  ; For each component type.
}  ; For each mixer.

Loop % LV_GetCount("Col")  ; Auto-size each column to fit its contents.
    LV_ModifyCol(A_Index, "AutoHdr")

SplashTextOff
Gui, Show
return

GuiClose:
ExitApp
  • 因此,您首先将麦克风音量更改为任意易于识别的数字,然后运行 ​​findmicid.ahk,您的 id 将位于您刚刚设置的任意麦克风音量旁边。

  • 在 togglemic.ahk 中设置你的麦克风 ID

  • 在pushtotalk.ahk中更改热键,并运行它。

就是这样,希望它能帮助那些寻找相同功能的人。

相关内容