Unity里面调节Windows系统音量

Unity 调用user32.dl调节系统音量

 [DllImportAttribute("user32.dll", EntryPoint = "keybd_event")]
    public static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, uint dwExtraInfo);

    [DllImportAttribute("user32.dll", EntryPoint = "MapVirtualKeyW")]
    public static extern int MapVirtualKey(uint uCode, uint uMapType);

    private const int VK_VOLUME_MUTE = 173;
    private const int VK_VOLUME_DOWN = 174;
    private const int VK_VOLUME_UP = 175;
    private const int KEYEVENTF_EXTENDEDKEY =1;
    private const int KEYEVENTF_KEYUP =2;

    /// <summary>
    /// 增加音量
    /// </summary>
    public void SystemVolumeUp()
    {
    
    
        keybd_event(VK_VOLUME_UP, (byte)MapVirtualKey(VK_VOLUME_UP, 0), KEYEVENTF_EXTENDEDKEY, 0);
        keybd_event(VK_VOLUME_UP, (byte)MapVirtualKey(VK_VOLUME_UP, 0), KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
    }

    /// <summary>
    /// 减小音量
    /// </summary>
    public void SystemVolumeDown()
    {
    
    
        keybd_event(VK_VOLUME_DOWN, (byte)MapVirtualKey(VK_VOLUME_DOWN, 0), KEYEVENTF_EXTENDEDKEY, 0);
        keybd_event(VK_VOLUME_DOWN, (byte)MapVirtualKey(VK_VOLUME_DOWN, 0), KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
    }

    /// <summary>
    /// 静音
    /// </summary>
    public void SystemMute()
    {
    
    
        keybd_event(VK_VOLUME_MUTE, (byte)MapVirtualKey(VK_VOLUME_MUTE, 0), KEYEVENTF_EXTENDEDKEY, 0);
        keybd_event(VK_VOLUME_MUTE, (byte)MapVirtualKey(VK_VOLUME_MUTE, 0), KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
    }

猜你喜欢

转载自blog.csdn.net/qq_33547099/article/details/129177628