0

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

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

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

我已经在 SO 和互联网上四处寻找,但我找不到任何令人满意的答案来解决这个难题。让我再问一次。“是什么阻止我的 Mac 在我的 Mac 上播放我的程序中的“哔”声,但同一台 Mac 上的沙盒 linux 播放声音没有问题?”

感谢您对此的任何帮助。

4

1 回答 1

1

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

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

于 2012-12-02T22:45:03.490 回答