我正在寻找一个免费的便携式C或C ++库,它允许我在5.1设置中的特定通道上播放单声道声音样本。例如,应使用左前扬声器播放声音,使所有其他扬声器保持静音。有没有能够这样做的图书馆?
我看了一下OpenAL。但是,我只能指定声音应该来自的位置,但在我看来,我不能说“仅使用左前声道播放此声音”。
欢迎任何提示!
答案 0 :(得分:3)
我看了一下OpenAL。但是,我只能指定声音应该来自的位置,但在我看来,我不能说“仅使用左前声道播放此声音”。
我不认为这是真的。我认为你可以用OpenAL做到这一点,尽管它不是微不足道的。如果您提供mono
格式数据,OpenAL只会执行位置操作。如果你给它立体声或更高,它会按照提供的方式播放数据。但是,您只能保证立体声支持。您需要检查系统上是否有5.1声道格式扩展(AL_FORMAT_51CHN16)。如果是这样,那么,我认为您将声音提供给所需的通道,并在缓冲样本时将零提供给所有其他通道。请注意,声卡上需要硬件支持。 “通用软件”设备不会削减它。
请参阅OpenAL邮件列表中的this discussion。
或者,我认为PortAudio是开放的,跨平台的,并且支持多通道输出。您仍然必须交错数据,这样,如果您要将声音发送到单个频道,则必须向所有其他频道发送零。在设备上打开流时,您还需要进行一些检查,以确保设备支持6个输出通道。
答案 1 :(得分:0)
很久以前我用RTAudio。但是我不能说这个lib是否可以做你想要存档的东西,但也许它有帮助。
答案 2 :(得分:0)
http://fmod.org也可以做到这一点
答案 3 :(得分:0)
我将 BASS音频库 http://www.un4seen.com用于我的所有音频,声音和音乐项目。我对此很开心。
BASS是一个音频库,为开发人员提供强大而高效的样本,流(MP3,MP2,MP1,OGG,WAV,AIFF,自定义生成,以及更多通过附加组件),MOD音乐(XM,IT,S3M) ,MOD,MTM,UMX),MO3音乐(MP3 / OGG压缩MOD)和录音功能。全部在一个小的DLL中,大小不超过100KB *。可以使用C / C ++,Delphi,Visual Basic,MASM,.Net和其他API。 BASS适用于Windows,Mac,Win64,WinCE,Linux和iOS平台。
我从未用它在5.1配置中播放不同的样本。但是,根据他们自己的文档,它应该是可能的。
主要功能
样本支持WAV / AIFF / MP3 / MP2 / MP1 / OGG和自定义生成的样本
样本流使用“推”和“拉”系统,以8/16/32位流式传输任何样本数据。 文件流 MP3 / MP2 / MP1 / OGG / WAV / AIFF文件流。 互联网文件流。从HTTP和FTP服务器(包括Shoutcast,Icecast和Icecast2)流式传输数据,具有IDN和代理服务器支持以及可调缓冲。 **自定义文件流**使用任何交付方式从任何地方流式传输数据,同时使用“推”和“拉”系统
多频道支持多种普通立体声,包括多声道OGG / WAV / AIFF文件
...
多个输出同时使用多个声卡,并在它们之间移动通道
扬声器分配将流和MOD音乐分配给特定扬声器,以利用能够提供超过普通立体声的硬件(最多4个单独的立体声输出和7.1声卡)
3D声音在任何3D位置播放样本/流/音乐
<强>许可强>
BASS免费用于非商业用途。如果您是非商业实体(例如个人)并且您没有从您的产品中赚钱(通过销售,广告等),那么您可以免费使用BASS。否则,将需要以下许可之一。