在 C# / .Net 中播放压缩声音文件是否有可移植的、不受专利限制的方式?我想在程序中发生的各种事件上播放简短的“叮当声”。
System.Media.SoundPlayer只能处理 WAV,但它们通常太大而无法嵌入可下载的应用程序中。MP3 受专利保护,因此即使有完全托管的解码器/播放器,也不能免费重新分发。可用的最佳格式似乎是 OGG Vorbis,但我没有让任何 C# Vorbis 库工作(我设法用csvorbis提取原始 PCM,但我不知道之后如何播放它)。
我既不想在我的应用程序中分发任何二进制文件,也不想依赖 P/Invoke,因为该项目至少应该在 Windows 和 Linux 上运行。只要它们与 GPL 许可证兼容,我就可以捆绑 .Net 程序集。
[这个问题是一年前关于 mono-dev 邮件列表的邮件列表讨论的后续问题]