用C/ c++在单个5.1声道上播放样本的便携式库

Portable library to play samples on individual 5.1 channels with C/C++?

本文关键字:播放 样本 便携式 声道 c++ 单个      更新时间:2023-10-16

我正在寻找一个免费的,便携式的C或c++库,它允许我在5.1设置中播放单声道声音样本。例如,声音应该用左前扬声器播放,而所有其他扬声器保持沉默。有什么图书馆能做到这一点吗?

我看了看OpenAL。然而,我只能指定声音应该来自的位置,但对我来说,我似乎不能说"只使用左前声道来播放这个声音"之类的话。

欢迎任何提示!

我看了看OpenAL。然而,我只能指定声音应该来自的位置,但对我来说,我似乎不能说"只使用左前声道来播放这个声音"之类的话。

我不认为这是真的。我认为你可以用OpenAL来做,尽管它不是微不足道的。OpenAL只做位置的东西,如果你给它mono格式数据。如果你给它立体声或更高的声音,它会按照提供的方式播放数据。然而,你只保证立体声支持。您需要检查系统上是否有5.1通道格式扩展(AL_FORMAT_51CHN16)。如果是这样,那么,我认为你把你的声音输入到你想要的通道,当你缓冲样本时,把零输入到所有其他通道。请注意,您需要在声卡上对此提供硬件支持。一个"通用软件"设备是无法做到这一点的。

查看OpenAL邮件列表中的讨论。

另外,我认为PortAudio是开放的、跨平台的,并且支持多通道输出。你仍然需要交错数据,这样如果你向单个通道发送声音,你就必须向所有其他通道发送零。当在设备上打开流时,您还需要做一些检查,以确保设备支持6通道输出。

很久以前我使用RTAudio。但我不能说这个库是否可以做你想要存档的,但也许它有帮助。

http://fmod.org也可以做到

我使用BASS音频库 http://www.un4seen.com为我所有的音频,声音和音乐项目。我对此非常满意。

BASS是一个音频库,为开发人员提供强大而高效的样本,流(MP3, MP2, MP1, OGG, WAV, AIFF,自定义生成,以及更多通过附加组件),MOD音乐(XM, IT, S3M, MOD, MTM, UMX), MO3音乐(MP3/OGG压缩MODs)和录音功能。所有这些都在一个很小的DLL中,大小小于100KB*。支持C/c++、Delphi、Visual Basic、MASM、。net等api。BASS适用于Windows、Mac、Win64、WinCE、Linux和iOS平台。

我从来没有用它在5.1配置中播放不同的样本。但是,根据他们自己的文档,这应该是可能的。

<

主要特性/strong>

  • Samples支持WAV/AIFF/MP3/MP2/MP1/OGG和自定义生成的Samples

  • 采样流以8/16/32位流式传输任何采样数据,具有"推"answers"拉"系统。文件流 MP3/MP2/MP1/OGG/WAV/AIFF文件流。Internet文件流。流数据从HTTP和FTP服务器(包括Shoutcast, Icecast &Icecast2),具有IDN和代理服务器支持和可调缓冲。**自定义文件流**流数据从任何地方使用任何交付方式,与"推"answers"拉"系统

  • 多声道支持纯立体声,包括多声道OGG/WAV/AIFF文件

  • 多个输出同时使用多个声卡,并在它们之间移动声道

  • 扬声器分配分配流和MOD音乐到特定的扬声器,以利用能够超过普通立体声的硬件(最多4个独立的立体声输出与7.1声卡)

  • 3D声音在任何3D位置播放样本/流/音乐

许可

BASS是免费的非商业用途。如果你是一个非商业实体(例如:(个人)并且你没有从你的产品(通过销售,广告等)中赚钱,那么你可以免费使用BASS。否则,必须申领下列牌照之一: