61 lines
2.3 KiB
C#
61 lines
2.3 KiB
C#
using UnityEngine;
|
|
#if UNITY_STANDALONE_WIN
|
|
using System.Runtime.InteropServices;
|
|
#endif
|
|
using System;
|
|
|
|
namespace GeneralTools
|
|
{
|
|
public class SoundManager : SingletonBaseAttribute<SoundManager>
|
|
{
|
|
#if UNITY_STANDALONE_WIN
|
|
public override void IStart()
|
|
{
|
|
base.IStart();
|
|
KeyDownManager.Instance.AddKeyDownAction(KeyCode.PageUp, () => { SystemVolumeUp(); }, "增加系统音量", false, 0);
|
|
KeyDownManager.Instance.AddKeyDownAction(KeyCode.PageDown, () => { SystemVolumeDown(); }, "降低系统音量", false, 0);
|
|
KeyDownManager.Instance.AddKeyDownAction(KeyCode.Pause, () => { SystemMute(); }, "静音/恢复系统音量", false, 0);
|
|
}
|
|
#region System
|
|
[DllImport("user32.dll")]
|
|
static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, uint dwExtraInfo);
|
|
|
|
[DllImport("user32.dll")]
|
|
static extern byte MapVirtualKey(uint uCode, uint uMapType);
|
|
|
|
private const byte VK_VOLUME_MUTE = 0xAD;
|
|
private const byte VK_VOLUME_DOWN = 0xAE;
|
|
private const byte VK_VOLUME_UP = 0xAF;
|
|
private const uint KEYEVENTF_EXTENDEDKEY = 0x0001;
|
|
private const uint KEYEVENTF_KEYUP = 0x0002;
|
|
|
|
/// <summary>
|
|
/// 改变系统音量大小,增加
|
|
/// </summary>
|
|
public void SystemVolumeUp()
|
|
{
|
|
keybd_event(VK_VOLUME_UP, MapVirtualKey(VK_VOLUME_UP, 0), KEYEVENTF_EXTENDEDKEY, 0);
|
|
keybd_event(VK_VOLUME_UP, MapVirtualKey(VK_VOLUME_UP, 0), KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 改变系统音量大小,减小
|
|
/// </summary>
|
|
public void SystemVolumeDown()
|
|
{
|
|
keybd_event(VK_VOLUME_DOWN, MapVirtualKey(VK_VOLUME_DOWN, 0), KEYEVENTF_EXTENDEDKEY, 0);
|
|
keybd_event(VK_VOLUME_DOWN, MapVirtualKey(VK_VOLUME_DOWN, 0), KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 改变系统音量大小,静音
|
|
/// </summary>
|
|
public void SystemMute()
|
|
{
|
|
keybd_event(VK_VOLUME_MUTE, MapVirtualKey(VK_VOLUME_MUTE, 0), KEYEVENTF_EXTENDEDKEY, 0);
|
|
keybd_event(VK_VOLUME_MUTE, MapVirtualKey(VK_VOLUME_MUTE, 0), KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
|
|
}
|
|
#endregion
|
|
#endif
|
|
}
|
|
} |