[Python]Windows 音量統一調整工具:讓系統喇叭與應用程式音量完美協調

這個簡化版工具可以一鍵將系統喇叭音量設定為 30%,同時將所有應用程式音量調整到 100%,讓您的音訊體驗更一致。

安裝所需套件

開始使用前,請在命令提示字元(CMD)或 PowerShell 執行以下命令:

pip install comtypes
pip install pycaw

完整程式碼

將以下程式碼複製到一個新的 .py 檔案中(例如 quick_volume.py):

import ctypes
from comtypes import CLSCTX_ALL
from pycaw.pycaw import AudioUtilities, IAudioEndpointVolume

# 設定音量常數
SPEAKER_VOLUME = 0.30  # 系統喇叭音量設為30%
APP_VOLUME = 1.0  # 應用程式音量設為100%

def set_master_volume():
    """將系統主喇叭音量設定為30%"""
    try:
        # 獲取喇叭設備
        devices = AudioUtilities.GetSpeakers()
        interface = devices.Activate(
            IAudioEndpointVolume._iid_, CLSCTX_ALL, None)
        volume = ctypes.cast(interface, ctypes.POINTER(IAudioEndpointVolume))
        
        # 獲取當前音量
        current_volume = volume.GetMasterVolumeLevelScalar()
        
        # 設置喇叭音量為30%
        volume.SetMasterVolumeLevelScalar(SPEAKER_VOLUME, None)
        
        print(f"已將系統喇叭音量從 {current_volume*100:.1f}% 調整為 {SPEAKER_VOLUME*100:.1f}%")
        return True
    except Exception as e:
        print(f"設置系統喇叭音量時發生錯誤: {e}")
        return False

def set_all_app_volumes():
    """將所有應用程式音量設定為100%"""
    print(f"正在將所有應用程式音量調整為 100%...")
    
    # 獲取所有音訊會話
    sessions = AudioUtilities.GetAllSessions()
    adjusted_count = 0
    
    for session in sessions:
        try:
            # 獲取音量接口
            app_volume = session.SimpleAudioVolume
            
            # 獲取應用名稱
            if session.Process:
                app_name = session.Process.name()
            else:
                app_name = "系統音效"
            
            # 將應用程式音量設置為100%
            app_volume.SetMasterVolume(APP_VOLUME, None)
            adjusted_count += 1
            
        except:
            pass
    
    print(f"已調整 {adjusted_count} 個應用程式的音量為 100%")

def show_current_volumes():
    """顯示所有音訊源的當前音量"""
    print("\n當前音量設置:")
    print("-" * 30)
    
    # 顯示系統喇叭音量
    devices = AudioUtilities.GetSpeakers()
    interface = devices.Activate(IAudioEndpointVolume._iid_, CLSCTX_ALL, None)
    volume = ctypes.cast(interface, ctypes.POINTER(IAudioEndpointVolume))
    master_volume = volume.GetMasterVolumeLevelScalar()
    
    print(f"系統喇叭: {master_volume*100:.1f}%")
    
    # 顯示應用程式音量
    sessions = AudioUtilities.GetAllSessions()
    for session in sessions:
        try:
            if session.SimpleAudioVolume and session.Process:
                current_volume = session.SimpleAudioVolume.GetMasterVolume()
                print(f"{session.Process.name()}: {current_volume*100:.1f}%")
        except:
            pass
    
    print("-" * 30)

if __name__ == "__main__":
    try:
        print("Windows 音量統一調整工具")
        print("正在調整音量...")
        
        # 調整系統喇叭音量
        set_master_volume()
        
        # 調整所有應用程式音量
        set_all_app_volumes()
        
        # 顯示最終設置
        show_current_volumes()
        
        print("\n音量調整已完成!按任意鍵退出...")
        input()
    except Exception as e:
        print(f"\n發生錯誤: {e}")
        input("按任意鍵退出...")

使用方法

只需雙擊執行 .py 檔案,程式會自動:

  1. 將系統喇叭音量設定為 30%
  2. 將所有應用程式音量調整為 100%
  3. 顯示調整後的音量設定
  4. 等待您按任意鍵退出

自訂設定

如果您想調整預設音量,只需修改程式碼開頭的常數:

# 設定音量常數
SPEAKER_VOLUME = 0.30  # 系統喇叭音量設為30%
APP_VOLUME = 1.0  # 應用程式音量設為100%

開機自動執行

如果希望每次開機都自動執行此程式:

  1. .py 檔案轉換為 .exe 檔案(可使用 PyInstaller): pip install pyinstaller pyinstaller --onefile quick_volume.py
  2. 將生成的 .exe 檔案放入啟動資料夾:
    • 按 Win+R
    • 輸入 shell:startup
    • .exe 檔案的捷徑放入開啟的資料夾中

注意事項

  • 此工具僅適用於 Windows 系統
  • 某些系統程序或受保護的應用程式可能無法調整音量
  • 如果在執行時遇到問題,請確保已安裝所有必要的套件

這個簡化版本移除了選單界面與多餘的功能,執行後會立即進行音量調整,完成後顯示結果並等待您按鍵退出,操作更加直接便捷。

發佈留言