BASS音频库支持播放、录音、音效和格式转换,且支持 64 位、跨平台、带有支持各种格式的扩展,除了闭源和商用收费(非商用免费)之外没毛病。
之前火山视窗和易语言都有人封装过这个音频库,但都只封装了部分功能。
这个版本我把 BASS 本体的功能全部封装了,并封装了几个官方扩展(每多用一个扩展就带多一个 dll,体积不大,就是琐碎)。
未来一两周应该会把剩余的扩展也解决掉,到时再更新吧,现在的代码量都 2600 多行了。
一、BASS 的部分回调函数已封装成事件,事件比写静态的回调函数是好用多了。
但有一处需要说说,BASS 的回调函数都有一个传用户数据的 user 参数,现在我用来传递对象自身的指针,所以接收事件里就没有用户数据这个参数了。
其实也没什么影响,因为在事件里使用窗口类的成员变量是非常简单的。
二、BASS 有大量的结构体、选项和标志常量,常量我基本保留了原名,但除了部分找不到文档的,备注都翻译了(差不多把大半个 BASS 文档翻译了)。
三、附带几个简单的测试例子,主要是播放器和录音机,基本功能都演示了一下。
播放器有两个例子,其中一个是 WASAPI 独占模式的演示(跟普通的用法不一样,以后有机会再写个 ASIO 的),本来还想加个频谱的,看了一下要自绘,还是算了……
内容说明:
1、BASS音频支持库.vcip 模块安装包,双击安装或更新模块到火山视窗;
2、BASS音频库样例.vsln 内含几个简单的测试例子,播放器和录音机;
3、plugin64 文件夹,64 位的 BASS 格式支持插件,建议用 BASS音频类的“加载插件目录”使用;
4、plugin32 文件夹,32 位的 BASS 格式支持插件,建议用 BASS音频类的“加载插件目录”使用;
已封装:
BASS 音频库本体
BASSWASAPI WASAP 输出输入接口
BASSmix 通道混合器
TAGS 取音乐文件标签信息
待封装:
bassasio ASIO 输出输入接口
bassenc 转换格式的编码器支持,里面又套娃了四个插件:bassenc_flac、bassenc_mp3、bassenc_ogg、bassenc_opus
bass_fx FX 音效插件
bass_vst VST 音效插件
bass_ofr OptimFROG 无损格式支持