Jad*_*ias 7 c++ windows audio-player
在Windows上有很多种播放声音的方法.每种方法的差异,优点和缺点是什么?
我知道至少有5种方法:
QSound,它将适合您的Qt应用程序的其余部分,它不仅可以在Windows上运行,也可以在Mac OS X和Linux上运行.找到一个对开发人员不是非常友好的核心,特定于平台的API,然后在核心之上构建了无数更加开发人员友好的API,这种情况并不少见.使用核心API的速度可以忽略不计,但使用这些核心API之上的层几乎总是更方便和可维护,并保护您免受低级核心的更改.
XAudio2是适用于Microsoft Windows和Xbox 360的低级跨平台音频API.它为与其前辈DirectSound和XAudio类似的游戏提供信号处理和混音基础.对于Windows游戏开发者来说,XAudio2是期待已久的DirectSound替代品.
因此,如果您需要一个特定于核心的平台音频库,那么它似乎就是要使用的API.
编辑2
我的第一个答案我有点快......真的,这取决于你想做什么.如果您只想播放音频文件,那么QSound就是您的最佳选择.但是,如果你想动态混合和生成音频,那么使用功能更强大的库,如XAudio2(它是DirectX的一部分,用于创建声音作为视频游戏的一部分)将是通往走.
真的取决于你想做什么。对于大多数常见场景,我发现MCIWnd函数运行良好:它们非常易于使用,并且可以播放安装了编解码器的任何格式。
DirectSound 使用起来有些困难,但可以让您更好地控制输出;它可以让您添加特殊效果并模拟 3D 定位。
这些waveOut函数是您可以访问的最低级别的 API,它们是一把双刃剑:您可以准确控制发送到扬声器的内容,但它们只接受原始波形数据,这意味着您负责所有解码以及输入数据的后处理。PlaySound本质上为此提供了一个很好的包装。