是否有任何C++ (LGPL或LGPL类)声音库,允许我通过纯粹指定频率和音量等东西来播放声音?
我的目标平台是Linux/Ubuntu,我并不真正关心跨平台。
如果我能发送一个声音数组,并且它能够将它压缩成一个普通的声音文件,比如mp3,那就太好了。
我正在寻找一些OpenGL-就像你可以‘画’的声音,它将被播放。我听说过OpenAL,但它似乎只是一个加载和播放声音的库。
发布于 2013-08-05 19:39:02
最简单和低级的音频库(如OpenAL、SDL等)可以很容易地播放PCM波形。你用你想玩的波浪填充一个缓冲器,然后播放它。要从频率、音量和诸如此类的东西中生成波形,您需要编写一些代码(可能几行用于简单的波形),并且需要了解基本的三角学。
OpenAL是一个针对3D游戏的跨平台API。它的界面在哲学上类似于OpenGL,并提供在虚拟3D环境(位置、速度等)中管理音频源的功能。提供了一些声音和环境效应(混响等)。我知道它可以解码一些压缩格式(MP3,Vorbis,.)使用扩展,但我不确定它是否具有任何编码功能。
SDL (或简单的直接媒体层)也是跨平台和面向游戏的,但它提供的远不止音频。但是它所提供的任何功能都是非常基本的,这是有意的,而且是经过设计的。SDL是一个平台抽象层。它的音频功能同样非常基础和低水平,只提供播放和记录PCM波.当然,还有一些扩展库(例如SDL_mixer)具有更多的功能。
参考文献:
据我所知,这两个项目都提供了文档和示例以及它们的源代码,因此您可能希望获得它们的源代码并开始试验。
如果我已经正确地理解了您想要做的事情,那么这些库中的任何一个都可以很容易地完成您想做的事情,但在我个人看来,SDL更简单更容易使用(除非您想要3D位置音频和效果)。
https://stackoverflow.com/questions/18065829
复制相似问题