我错过了什么来阻止Beep在Mac 10.5.8上发声(使用MonoDevelop 2.8.8.2)?

时间:2012-12-02 12:59:07

标签: macos cross-platform system monodevelop beep

我正在编写一个跨平台程序,它显示一个计时器,可以向上或向下计数到用户设置的间隔。在那段时间结束时我想发出声音。我想过用的东西:

System.Media.SystemSounds.Beep.Play();

会奏效。除了我的Mac上没有播放声音外,我没有任何失败的迹象。当我用一个“按钮”编写一小段测试代码来触发“嘟嘟”声时,它没有播放。但是,上面的代码片段在我妻子的Windows Vista机器上运行正常(也使用MonoDevelop 2.8.8.4)。具有讽刺意味的是,它也适用于沙盒Ubuntu 12.04 linux(MonoDevelop 2.8.6.3),我通过VirtualBox在我的Mac上沙盒化。

我环顾四周,在互联网上,但我找不到任何令人满意的答案。让我再问这个问题。 “什么阻止了我的Mac在我的Mac上的程序中播放”Beep“声音,但在同一台Mac上的沙盒linux播放声音没有问题?”

感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:1)

Mono's implementation of System.Media,它似乎只针对ALSA(Linux声音系统之一)和Windows实现。我怀疑这是因为System.Media是一个非常简单的声音API,不能做很多,所以很少使用。

我想不出任何优秀的平台无关的声音播放器API,认为GTK #UI工具包(由MonoDevelop使用)有一个Display.Beep() AFAIK可以在所有平台上运行。如果您的应用是终端应用,您也可以尝试System.Console.Beep ()