用 C++ 播放声音?
Posted
技术标签:
【中文标题】用 C++ 播放声音?【英文标题】:Playing sounds with C++? 【发布时间】:2009-04-25 23:39:15 【问题描述】:如何在我的程序中有一个按钮,当单击该按钮时我希望它在不打开媒体播放器的情况下播放 .wma 文件?
【问题讨论】:
【参考方案1】:C++ 标准不包含此功能。这意味着这取决于您的系统提供的功能。
对于 Windows,您可以尝试类似PlaySound。
但是,最好的办法是使用预先存在的库,例如:
OpenAL BASS FMOD SDL 的:Sound。搜索C++ Sound Library 会带来很多信息。
另外,看看这三个其他SO topics:
What Is The Best C++ Sound API For Windows? How to play MP3 files in C? Learning to work with audio in C++【讨论】:
Playsound 不播放 .wma 文件,只播放 .wav。【参考方案2】:虽然上面的答案提到了它(以及其他所有内容,它没有给出任何建议......),FMOD 是 C++ 声音之王(最常用)并且效果很好,所以我特别推荐 FMOD .
【讨论】:
【参考方案3】:Gstreamer 是一个免费的跨平台多媒体框架,用 C 语言编写(使用 GObject),允许对包括 wma 在内的多种媒体进行编码/解码。非常易于使用且有据可查。
【讨论】:
【参考方案4】:KDE 的Phonon 是一个跨平台(!)C++ 多媒体库。它支持原生声音系统作为后端。没见过的也值得一看,一个简单的视频播放器只需要 83 行代码就可以写出来。
【讨论】:
【参考方案5】:对于 Windows,老实说,您最好的选择是 DirectShow。 RenderFile API 让您只需几行代码即可播放大多数音频文件类型。
DirectShow 的最佳之处在于它是 Windows 平台的一部分,因此您无需捆绑外部组件。
【讨论】:
以上是关于用 C++ 播放声音?的主要内容,如果未能解决你的问题,请参考以下文章