如何在 Windows 10 中設定耳機拔出時自動靜音

Windows 10 沒有在耳機拔出時自動靜音的通用開關。 PowerShell 腳本可以監聽裝置變更事件,並在耳機移除後預設播放端點靜音。您可以手動啟動該腳本,也可以設定任務排程器在登入時自動執行。

該腳本會使播放靜音,但不會暫停應用程式。它還會監測整個電腦上的裝置變化,而不僅僅是耳機,因此其他裝置也可以觸發它。

檢查 Windows 如何偵測您的耳機

開啟「開始」>「設定」>「系統」>「聲音」,檢查耳機是否單獨顯示在「輸出」下方。 Windows 可讓您在此選擇輸出裝置並調整音量,但沒有提供拔出耳機時自動靜音的功能。有關設備控制的更多信息,請參閱 Microsoft 的音訊設定指南。

開啟 Windows 10 設置,進入系統和聲音,在輸出裝置選擇器下可以看到揚聲器和耳機。
「聲音」頁面可讓您選擇輸出;它不會建立自動靜音規則。

檢查電腦的音訊實用程序,查看耳機插孔設定。可用性取決於音訊驅動程式。類比插孔的實體插頭本身並非即插即用設備。某些音訊轉接器會向 Windows 報告插孔的存在,而有些則不會,因此此腳本可能無法偵測到 3.5 公釐耳機的拔出。微軟在其音訊端點文件中解釋了這種差異。 USB 或藍牙耳機在 Windows 新增或刪除時也可能觸發裝置事件,具體取決於裝置和驅動程式。

儲存 PowerShell 腳本

  1. 開啟Prateek Singh 的原始 PSAutoMute 腳本,並在執行前檢查程式碼。腳本使用 Windows 音訊介面來靜音預設的多媒體播放端點,並監聽 WMI 事件。
  2. 將其儲存到永久資料夾,例如C:\Scripts. 在記事本中,選擇「檔案」>「另存為」,將檔案命名為MuteWhenHeadphonesDisconnect.ps1,並將「儲存類型」設為「所有檔案 (*.*)」。確認檔案總管顯示的是檔案.ps1副檔名,而不是.ps1.txt.
在 Windows 的「另存為」對話方塊中,將檔案名稱設定為 MuteWhenHeadphonesDisconnect.ps1,並將類型選擇為「所有檔案」。
儲存時請使用 .ps1 副檔名,並選擇“所有檔案”,這樣記事本就不會在後面加上 .txt。

該腳本的事件類別範圍很廣。微軟表示,Win32_DeviceChangeEvent它涵蓋了電腦上所有設備的變更:事件類型 2 表示設備到達,類型 3 表示設備移除。如果聲音被靜音,該腳本會在裝置移除時將其靜音,並在裝置到達時取消靜音。因此,USB 驅動器可能會取消音訊靜音,移除滑鼠也可能會使其靜音;該腳本無法判斷使用者是否手動將揚聲器靜音。有關這些定義,請參閱微軟的事件類別參考文件。

請在Windows PowerShell 5.1中執行,而不是在 PowerShell 7 中執行。它使用了Register-WmiEventMicrosoft 從 PowerShell 7 移除的函數;請參閱Windows PowerShell 5.1 參考與PowerShell 7 重大變更。

PowerShell 腳本是可執行程式碼,所以請先檢查檔案。在您有權運行的個人電腦上,請RemoteSigned僅用於此 PowerShell 進程;它不會變更持久性電腦或使用者原則。如果 Windows 仍然阻止下載的文件,請檢查並執行它。 Microsoft 在其執行策略指南Unblock-File -Path "C:\Scripts\MuteWhenHeadphonesDisconnect.ps1"中解釋了這些範圍。請勿涵蓋工作或學校的策略。

運行並測試它

以普通使用者身分從「開始」功能表開啟Windows PowerShell,切換到腳本資料夾,然後啟動監視器:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned -Force
Set-Location C:\Scripts
.\MuteWhenHeadphonesDisconnect.ps1

如果檔案儲存在其他位置,請替換資料夾路徑。腳本會循環執行,因此 PowerShell 視窗會一直保持開啟。測試時請保持視窗開啟;按Ctrl+C即可停止腳本。

在 Windows 10 桌面上使用 Windows PowerShell,輸入 MuteWhenHeadphonesDisconnect.ps1 啟動指令並執行腳本。
在 Windows PowerShell 中啟動監視器並保持其視窗開啟。

首先將音量調低。拔下耳機再重新連線一次,確認 Windows 系統先靜音,然後再恢復聲音。由於監聽器是系統級的,其他設備變更也可能導致相同的情況。如果您的類比插孔沒有任何反應,可能是音訊驅動程式沒有將其報告為裝置移除。如果受影響的裝置與預期不符,請檢查哪個端點被設定為 Windows 的預設端點;腳本控制的是該端點,而不是每個應用程式的特定輸出。

登入後即可開始

  1. 開啟任務規劃程序,選擇「建立基本任務」,並為任務命名。
  2. 選擇“登入時”作為觸發器。這將在您的使用者會話中啟動監視器,前提是您的播放裝置可用。 Microsoft-AtLogOn在New-ScheduledTaskTrigger中記錄了對應的觸發器。
  3. 選擇“啟動程序”。將“程式/腳本”設定為“ powershell.exe”。在「新增參數」下,輸入「」-NoProfile -ExecutionPolicy RemoteSigned -File "C:\Scripts\MuteWhenHeadphonesDisconnect.ps1",將路徑變更為檔案的完整位置。
  4. 完成精靈後,開啟任務屬性,並將其設定為僅在您登入時執行。下次登入後進行測試,然後再隱藏或最小化視窗。請勿在計劃任務運行時啟動第二個副本。
Windows 工作排程程式基本任務精靈顯示,以登入時為觸發器,以啟動程式為選定操作。
選擇「啟動程式」作為登入任務,然後將其指向 PowerShell 和您的腳本。

何時使用不同的方法

當可以接受廣泛的設備變更行為時,此變通方案效果最佳。微軟的 Core Audio API 提供了一個IMMNotificationClient用於添加和移除音訊端點通知的接口,但連結的腳本並未實現該接口。驅動程式還必須將實體插孔變更作為端點事件公開。如果僅針對耳機,請使用 PC 製造商提供的、明確支援插孔檢測的實用程序,或使用能夠篩選正確音訊端點的工具。請參閱微軟的IMMNotificationClient 文件。

若要撤銷自動啟動,請在任務排程器中停用或刪除該任務。若要停止手動啟動的腳本,請在其 PowerShell 視窗中按Ctrl+C 。

留下評論

使用 FotoSketcher 將照片轉換為繪畫、素描和卡通

使用 FotoSketcher 將照片轉換為繪畫、素描和卡通

使用 FotoSketcher Studio 將照片轉換成繪畫、鉛筆素描或卡通。學習如何選擇效果、調整預覽、保存作品。

使用音訊標識符詳細分析和識別音訊文件

使用音訊標識符詳細分析和識別音訊文件

了解音訊標識符揭示的位元率、編碼器和標籤訊息,其傳統工作流程如何運作,以及當前哪些工具可以檢查文件或識別歌曲。

我的照片索引:一款適用於 Windows 的開源照片管理器。

我的照片索引:一款適用於 Windows 的開源照片管理器。

My Photo Index 是一款舊版 Windows 相片目錄管理工具,用於標記、評分和瀏覽本機影像。請查看其文件功能、相容性限制以及一個維護良好的替代方案。

使用屬性變更器變更檔案和資料夾屬性、日期和時間

使用屬性變更器變更檔案和資料夾屬性、日期和時間

學習如何使用屬性變更器安全地編輯 Windows 檔案屬性和時間戳記、更新 JPEG EXIF 照片日期以及預覽批次變更。

如何在 Windows 10 中為每個顯示器設定不同的桌布

如何在 Windows 10 中為每個顯示器設定不同的桌布

為每個 Windows 10 顯示器設定單獨的壁紙,識別顯示器,調整影像適應度,並解決缺少顯示器選擇的問題。

pViewer:一款極簡圖像檢視器和漫畫閱讀器

pViewer:一款極簡圖像檢視器和漫畫閱讀器

了解 pViewer 的功能、照片和漫畫模式的工作原理、應該下載哪個 Windows 版本,以及舊版和重寫版之間的差異。

如何在 Windows 7 和 8 中使用快速鍵切換到下一個桌面背景

如何在 Windows 7 和 8 中使用快速鍵切換到下一個桌面背景

設定 Windows 7 或 8 投影片放映,建立一個小型 VBScript 快捷方式,並指派鍵盤熱鍵來切換到下一張桌布。

NeoDownloader:設定參數並從網站批量下載圖片

NeoDownloader:設定參數並從網站批量下載圖片

學習如何建立 NeoDownloader 專案、選擇爬取範圍、設定映像過濾器和目標位置,以及查看批次下載。

XnConvert:批次應用特效和轉換影像格式

XnConvert:批次應用特效和轉換影像格式

使用 XnConvert 可以批次套用特效、調整照片大小和轉換影像格式。選擇輸出設定、預覽編輯效果並保護您的原始文件。

使用 ManicTime 追蹤工作時間和電腦使用情況

使用 ManicTime 追蹤工作時間和電腦使用情況

了解 ManicTime 如何追蹤應用程式使用情況、活躍時間和空閒時間以及文檔,然後將您的活動歷史記錄轉換為專案標籤和時間表。