我如何编码我的WinForms应用程序播放系统声音
本文关键字:应用程序 WinForms 播放 系统 声音 我的 何编码 编码 | 更新日期: 2023-09-27 18:03:17
对于c++,有一个函数PlaySound,可以用来播放声音。c#中有类似的东西吗?我有一个应用程序,我想在它启动时播放系统声音,以宣布它的启动。
一定有办法的。我希望。
我想把它放在Form_Load事件的末尾:
private void Form1_Load(object sender, EventArgs e)
{
/*
A bunch of configuration and initialization stuff
*/
PlayBeepBoop();
}
private void PlayBeepBoop()
{
PlaySystemSound("Beep");
}
有一个SystemSounds
类听起来可能是你想要的:
SystemSounds.Beep.Play();
它对应于你在Windows声音设置中设置为"默认哔哔声"的任何wav文件
我知道有三种播放系统声音的方法。
最常见的是要打印的与语言无关的'a
字符,它发出非常标准的哔哔声。
Console.WriteLine("'a");
第二种方法可以让你直接使用一些发音,比如"感叹号"answers"手"。它们位于SystemSounds
类中(来自Systems.Media
命名空间),使用非常简单。
SystemSounds.Hand.Play();
最后,最后一种方法使您可以访问所有其他Windows系统声音。您所要做的就是创建一个同样位于Systems.Media
名称空间的SoundPlayer
,并用它手动加载声音。所有的系统声音都位于同一个位置,所以这很容易做到。
new System.Media.SoundPlayer(@"C:'Windows'Media'tada.wav").Play();
你可以使用这个类来播放任何"。wav"格式的声音。例如,您可以在"C:' windows 'Media"(windows 7)中找到windows声音。
public class Wav
{
[DllImport("winmm.dll", CharSet = CharSet.Auto)]
private static extern bool PlaySound(String lpszName, IntPtr hModule, Int32 dwFlags);
public static bool Play(string wavFileName)
{
try
{
return PlaySound(wavFileName, IntPtr.Zero, 0);
}
catch
{
return false;
}
}
}