aardio 文档

sys.soundPool 库模块帮助文档

游戏音效池

sys 成员列表 #

sys.soundPool(options) #

创建音效池(打开音频设备约 80 毫秒,程序启动时创建一个即可)。
可选参数 @options 可指定 maxVoices:每种音频格式最多同时播放的声音数,默认 32,
超出时打断最早开始的声音

返回对象:sysSoundPoolObject

sys.soundPool 成员列表 #

游戏音效池:启动时载入音效,之后一句 play(名字) 播放,多个声音可以同时响。
基于系统自带的 XAudio2(Windows 8 以上),由系统音频线程混音,
play 只是提交请求(约 0.03 毫秒),延迟约 10 毫秒,不卡界面,不需要线程。
没有声卡或系统不支持时为静音模式:对象照常创建,play 返回 null,程序不必判断。
所有方法在创建对象的线程调用

sys.soundPool.parseWav(data) #

解析 WAV 文件数据,返回 {data=PCM buffer;format=WAVEFORMATEX 结构体},
支持 8/16/24/32 位整数 PCM 与 32 位浮点。失败返回 null,错误信息

sysSoundPoolObject 成员列表 #

sysSoundPoolObject.add(name,source,volume) #

载入声音,成功返回时长(秒),失败返回 null,错误信息。
参数 @name 是播放时用的名字,重复添加会替换。
参数 @source 可以是:

sysSoundPoolObject.available #

音频设备可用时为 true,静音模式为 null

sysSoundPoolObject.close() #

停止所有声音并关闭音频设备(对象被回收时也会自动调用)

sysSoundPoolObject.duration(name) #

返回声音时长(秒)

sysSoundPoolObject.has(name) #

是否已添加指定名字的声音

sysSoundPoolObject.isPlaying(target) #

是否正在播放。
参数 @target 可以是播放编号或声音名字,省略则检查是否有任何声音在播放

sysSoundPoolObject.lastError #

静音模式的原因

sysSoundPoolObject.loop(name,volume,pitch) #

循环播放声音(例如背景音乐),返回播放编号,直到调用 stop 才停止

sysSoundPoolObject.maxVoices #

每种音频格式最多同时播放的声音数

sysSoundPoolObject.play(name,volume,pitch) #

播放声音,立即返回播放编号(可传给 stop)。
同一个声音可以重叠播放。
可选参数 @volume 为音量,默认 1(与 add 指定的基础音量相乘)。
可选参数 @pitch 为音高倍数,默认 1,范围 0.01~4(同时改变速度),
每次在 1 附近随机取值可让重复的音效不单调。
失败(包括静音模式)返回 null,错误信息

sysSoundPoolObject.setVolume(volume) #

设置总音量(0~1,可大于 1 放大),影响正在播放与之后的所有声音。
设为 0 即静音

sysSoundPoolObject.stop(target) #

停止声音。
参数 @target 可以是 play/loop 返回的播放编号,或声音名字(停止这个声音的所有播放)。
省略参数停止所有声音

Markdown 格式