我正在尝试使用
从C#程序播放Asterisk系统声音System.Media.SystemSounds.Asterisk.Play();
但没有声音播放。我的系统确实为Asterisk设置了声音,其他程序(不是由我编写)会导致各种系统声音播放。
有人可以提出任何可能的原因吗?
答案 0 :(得分:5)
当您可以播放/预览来自“控制面板声音和音频设备”小程序的声音时,它们会在程序触发声音时播放。它似乎是由程序安装引起的腐败。修复非常简单。
注册表中HKEY_CURRENT_USER的(默认)条目应为(值未设置)。如果它是其他东西(我的是OfficeCompleted)删除条目(右键单击并选择删除),它将被重新创建为(值未设置)。然后应播放系统声音。
答案 1 :(得分:1)
对不起,如果这夸大了显而易见的......
我看了一下反射器。无论您调用哪个SystemSounds都会返回一个SystemSound实例,该实例使用类型(例如,Asterix为0x40)初始化,以便播放您想要播放的系统声音。然后将其传递给Win32 bool MessageBeep(int类型)方法。导入为:
[DllImport("user32.dll", CharSet=CharSet.Auto, ExactSpelling=true)]
internal static extern bool MessageBeep(int type);
bool返回不会以任何方式保留 - 即你无法得到它:(
不会吞下异常,所以如果抛出异常,你应该得到任何异常。
希望有所帮助(尽管可能只是告诉你你已经知道的事情)
答案 2 :(得分:1)
我参加晚会只有8年,但我在Windows 7平板电脑上遇到了这个问题。解决它的事情是什么?经典Restart
。
尝试重启设备。