懒人求个音频库……
免费的3D库这么多,音频库却貌似没有多少……网上找了很久也找不到合适的……要求比较简单,不需要去到DirectSound一样硬件相关,只要能解码几种音频格式到PCM,支持Streaming就可以。连硬件接口和Mixing的也可以。当然最好商业用途免费,不是GPL、LGPL的……
支持的格式:MP3, OGG必须,最好有模块音频、MIDI和(HE-)AAC……
目前考虑过:
SDL + SDL_Mixer(可惜LGPL的)
OpenAL(貌似只支持WAV?)
BASS(商业要钱)
fmod(很强大,可惜商业要钱)
ffmpeg(LGPL)
难道真的就要自己写了么 Audiere 1.9.4
Audiere is a high-level, straightforward, and portable audio API.
It supports several audio file formats:
Ogg Vorbis (requires the vorbisfile libraries)
MP3
FLAC (requires libFLAC)
Speex (requires libspeex)
uncompressed WAV
AIFF
MOD, S3M, XM, IT
It also supports the following output devices or APIs:
DirectSound (Windows)
WinMM (Windows)
OSS (Linux and Cygwin)
SGI AL (IRIX)
lgpl,只有一个dll,只要不改这个dll,商业用没有问题。 又要給偶出难题啊- -:
好吧MOD偶才刚刚接触所以没有MIDI和数字音频分开的
没有统一的接口你点一个好了,有的话给你……
其实自己去找开源的库写一下就一天搞定啊…… 补充……最好把一些东西分清楚,例如OPENAL本身和WAVEOUT DS一样都是播放数字音频的软件,和解码器本身无关的。。。
最推荐的还是DSOUND播放,OPENAL下载了好久没有下载到(其实没有怎么去好好找……)WAVEOUT有很高的自由控制度……ASIO和KS比较接近硬件也就放弃罢~~ http://www.openal.org/downloads.html
如果想用midi,最好是用dmusic,不然自己从头写起,还要去找音色库,麻烦死了。 Audiere不错,不知有没有办法从内存streaming(类似于zlib那种模式)……
MIDI有是最好,没就算了,因为不能保证每台机的输出都一样,还是模块音频好些……倒是CD播放可以考虑……
dmusic看到它那么接口就烦……
其实直接用dsound也不是很麻烦,主要是解码部分要自己写…… audiere中有
class OGGInputStream
{
OGGInputStream ()
~OGGInputStream ()
boolinitialize (FilePtr file)
voidgetFormat (int &channel_count, int &sample_rate, SampleFormat &sample_format)
intdoRead (int frame_count, void *buffer)
voidreset ()
boolisSeekable ()
intgetLength ()
voidsetPosition (int position)
intgetPosition ()
}
同样的还有AIFFInputSteam,MODInputStream....
这样的东西,不知道合不合你用。
页:
[1]