使用System.Media时,会有一些名为SystemSounds的东西,您可以轻松播放几个操作系统声音:
System.Media.SystemSounds.Asterisk.Play();
System.Media.SystemSounds.Beep.Play();
System.Media.SystemSounds.Exclamation.Play();
System.Media.SystemSounds.Hand.Play();
System.Media.SystemSounds.Question.Play();
不幸的是,只有这五个选项,在Windows 10中,其中三个是相同的,而其中一个甚至不玩任何东西。
我真正想要做的是播放声音面板中定义的通知声音(见此处):
有谁知道怎么做?
答案 0 :(得分:1)
找到解决方案。代码在这里:
using System.Media;
using Microsoft.Win32;
public void PlayNotificationSound()
{
bool found = false;
try
{
using (RegistryKey key = Registry.CurrentUser.OpenSubKey(@"AppEvents\Schemes\Apps\.Default\Notification.Default\.Current"))
{
if (key != null)
{
Object o = key.GetValue(null); // pass null to get (Default)
if (o != null)
{
SoundPlayer theSound = new SoundPlayer((String)o);
theSound.Play();
found = true;
}
}
}
}
catch
{ }
if (!found)
SystemSounds.Beep.Play(); // consolation prize
}
您可以浏览注册表编辑器中的键以查看其他声音。此外,此示例已编码为适用于Windows 10,并且我不确定其他版本的Windows的注册表结构是什么,因此如果您需要&#I,您需要仔细检查用户正在使用的操作系统# 39;重新尝试为多个平台编码。