【发布时间】:2009-01-24 16:40:20
【问题描述】:
WinCE可以发出哔声吗?
我尝试了,我得到一个错误
【问题讨论】:
-
This blog entry 也可能感兴趣。
标签: c# compact-framework audio
WinCE可以发出哔声吗?
我尝试了,我得到一个错误
【问题讨论】:
标签: c# compact-framework audio
用于beeing 的.net 框架方法在框架的CF 版本中不可用。获得哔声的最佳方法是 PInvoke 进入 MessageBeep 函数。此方法的 PInvoke 签名非常简单
[DllImport("CoreDll.dll")]
public static extern void MessageBeep(int code);
public static void MessageBeep() {
MessageBeep(-1); // Default beep code is -1
}
这篇博文有一个很好的更详尽的例子:http://blog.digitforge.com/?p=4 (on archive.org)
【讨论】:
是的。 P/Invoke PlaySound 或 sndPlaySound 或 MessageBeep。请参阅 this 或 this 或 this。搜索引擎的 30 秒能出现的效果真是太神奇了。
【讨论】:
如果您希望播放默认系统声音之一并使用 .net 运行时 2.0+(和 framework v 3.5+),那么您可以使用 System.Media.SystemSounds 类(不需要 PInvoke 或 WinAPI 调用),如下所示:
//available system sounds
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();
请注意,如果用户禁用或静音了系统声音,他们将听不到任何声音。
但是,如果您要播放任意音调,则需要查看上述涉及 WinAPI 或 PInvoke 的答案。
【讨论】:
对于 Compact Framework 中的简单哔声,您不需要所有导入的废话。此外,根据硬件,您无论如何都只能访问默认的哔声。只需使用:
Microsoft.VisualBasic.Interaction.Beep()
【讨论】: