在WinCE中发出哔哔声,有可能吗?

时间:2009-01-24 16:40:21

标签: c# compact-framework audio

是否可以在WinCE中发出哔声?

我尝试,我得到一个错误

4 个答案:

答案 0 :(得分:11)

用于生成的.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)

答案 1 :(得分:6)

是。 P / Invoke PlaySoundsndPlaySoundMessageBeep。请参阅thisthisthis。令人惊讶的是搜索引擎可以在30秒内出现。

答案 2 :(得分:4)

如果您正在寻找默认系统声音之一并使用.net运行时2.0+(和框架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的上述答案。

答案 3 :(得分:0)

对于Compact Framework中的简单哔声,您不需要进行任何导入废话。此外,根据硬件的不同,您只能访问默认的蜂鸣声。只需使用:

Microsoft.VisualBasic.Interaction.Beep()