C++ 我应该使用哪个API在Windows上播放音频?
在Windows上播放声音的方式有很多种。每种方法的区别、优点和缺点是什么 我知道至少有5种方法:C++ 我应该使用哪个API在Windows上播放音频?,c++,windows,audio-player,C++,Windows,Audio Player,在Windows上播放声音的方式有很多种。每种方法的区别、优点和缺点是什么 我知道至少有5种方法: 1991年 1995年MCIWnd(根据@casablanca的建议) 一九九六年 1998年退潮 1999年亚洲信息组织 1999 Windows Media Player ActiveX控件 2005年(XAudio2使用-如@Han所建议) 2007年 ,则它将与应用程序的其余部分完全匹配,而且它不仅可以在Windows上工作,还可以在Mac OS X和Linux上工作。找到一个对开发人员不
从: XAudio2是一种适用于Microsoft Windows和Xbox 360的低级跨平台音频API。它为游戏提供了信号处理和混合基础,类似于它的前辈、DimtSoad和XoDead。对于Windows游戏开发者来说,XAudio2是期待已久的DirectSound替代品 因此,如果您想要一个核心的、特定于平台的音频库,那么它看起来就是要使用的API 编辑2
我的第一个答案有点快。。。真的,这取决于你想做什么。如果你只想播放一个音频文件,那么QSound就是最好的选择。但是,如果您希望动态混合和生成音频,则可以使用功能更强的库,如XAudio2(它是DirectX的一部分,用于在视频游戏中创建声音)。这取决于您想要做什么。对于大多数常见的场景,我发现这些函数工作得很好:它们非常易于使用,并且可以播放安装了编解码器的任何格式 DirectSound使用起来有点困难,但它可以让您更好地控制输出;它允许您添加特殊效果和模拟三维定位
waveOut
函数是您可以使用的最低级别的API,它们是一把双刃剑:您可以精确控制扬声器输出的内容,但它们只接受原始波形数据,这意味着您负责输入数据的所有解码和后处理。本质上提供了一个很好的包装。我真的很好奇你怎么知道他的应用程序是基于Qt的。这个问题被编辑了吗?这是贾德的另一个问题吗?@Ben,我没有。。。警告:waveOut函数在不同的Windows版本中的行为有着非常轻微的不同,这在我的代码中导致了“ifdef地狱”。如果说这是一个一刀切的方法,那么多年来我在多个窗口同时播放声音时,我从来没有见过它,也没有无意中发现过它。如果没有视频内容,我会认为(或mciSendString)远远优于MCIWnd。从历史的角度来看,我添加了每个API的推出日期