如果打开了特定的Windows窗体,如何停止媒体播放器?Visual Studio C#



我正在为学校作业制作一个游戏。对于使用WMP的背景音乐,其中一个规范是关闭背景音乐。当进入其中一种游戏模式时。游戏的编码方式是为特定内容打开一个新窗口。游戏模式。但我无法暂停/停止音乐窗口特定的窗口是打开的。根据我的编程基础知识,它可能使用IF声明何时。特定窗口打开,音乐停止。这是我最好的主意,

static class MediaMixer
{
static public void StopPlaying()
{
var input = new NativeMethods.INPUT { Type = 1 };
input.Data.Keyboard = new NativeMethods.KEYBDINPUT
{
Vk = 0xB2,
Scan = 0,
Flags = 0,
Time = 0,
ExtraInfo = IntPtr.Zero
};
var inputs = new NativeMethods.INPUT[] { input };
NativeMethods.SendInput(1, inputs, Marshal.SizeOf(typeof(NativeMethods.INPUT)));
}
static public void MuteVolume(IntPtr handle)
{
NativeMethods.SendMessageW(handle.Value,
NativeMethods.WM_APPCOMMAND,
handle.Value,
(IntPtr)NativeMethods.APPCOMMAND_VOLUME_MUTE);
}

}
static class NativeMethods
{
public const int WM_APPCOMMAND = 0x319;
public const int APPCOMMAND_VOLUME_MUTE = 0x80000;
[StructLayout(LayoutKind.Sequential)]
public struct INPUT
{
public uint Type;
public MOUSEKEYBDHARDWAREINPUT Data;
}
[StructLayout(LayoutKind.Sequential)]
public struct KEYBDINPUT
{
public ushort Vk;
public ushort Scan;
public uint Flags;
public uint Time;
public IntPtr ExtraInfo;
}
[DllImport("user32.dll", SetLastError = true)]
static public extern uint SendInput(uint numberOfInputs, 
INPUT[] inputs,
int sizeOfInputStructure);
}

最新更新