路径:支持库 → 音频支持库。
硬约束
- 扁平命令;优先 Media Foundation(MFPlay),失败回退 MCI。
- 简易命令操作「当前」音频;
打开音频最多 16 路。 - 音量
0~100;-1= 默认/不改。带可选 ID:置音频音量([ID], 音量)—— 1 参=音量,2 参=ID+音量。 置音频完毕仅自然播完触发;循环播放不触发。- 字节集播放会写临时文件,关闭槽位时删除。退出前建议
关闭全部音频()。
快速开始
函数 播完 () {
输出("完毕 id=" + 到文本(取音频完毕ID()))
}
函数 主窗口.创建完毕 () {
置音频完毕(&播完)
置音频音量(80)
如果 (!播放音频("C:\\Windows\\Media\\Alarm01.wav")) {
输出(取音频错误())
}
}
函数 主窗口.即将关闭 () {
关闭全部音频()
}
播放控制
本分类共 7 条。
停止音频
- 签名:
无 停止音频([整数 音频ID]) - 说明:停止并关闭。省略 ID=关闭全部音频。
- 参数一│[整数 音频ID]
播放音频
- 签名:
逻辑 播放音频(文本 文件路径, [逻辑 异步=真], [逻辑 循环=假], [整数 音量=-1]) - 说明:打开并播放,设为当前。音量 -1=沿用默认;循环仅异步有效。
- 参数一│文本 文件路径
- 参数二│[逻辑 异步=真]
- 参数三│[逻辑 循环=假]
- 参数四│[整数 音量=-1]: 0~100;-1 不改默认音量
播放音频字节集
- 签名:
逻辑 播放音频字节集(字节集 数据, [逻辑 异步=真], [逻辑 循环=假], [整数 音量=-1]) - 说明:从内存字节集播放(写临时文件,关闭时删除)。
- 参数一│字节集 数据
- 参数二│[逻辑 异步=真]
- 参数三│[逻辑 循环=假]
- 参数四│[整数 音量=-1]
暂停音频
- 签名:
逻辑 暂停音频([整数 音频ID]) - 说明:暂停。省略 ID=暂停全部正在播放的音频。
- 参数一│[整数 音频ID]
继续音频
- 签名:
逻辑 继续音频([整数 音频ID]) - 说明:继续。省略 ID=恢复全部已暂停的。
- 参数一│[整数 音频ID]
音频是否播放
- 签名:
逻辑 音频是否播放([整数 音频ID]) - 说明:是否正在播放。省略 ID=任一一路在播即为真。
- 参数一│[整数 音频ID]
音频是否暂停
- 签名:
逻辑 音频是否暂停([整数 音频ID]) - 说明:是否暂停。省略 ID=任一一路暂停即为真。
- 参数一│[整数 音频ID]
音量进度
本分类共 11 条。
取消静音音频
- 签名:
逻辑 取消静音音频([整数 音频ID]) - 说明:取消静音,恢复逻辑音量输出。
- 参数一│[整数 音频ID]
取音频位置
- 签名:
整数 取音频位置([整数 音频ID]) - 说明:当前位置(毫秒)。
- 参数一│[整数 音频ID]
取音频时长
- 签名:
整数 取音频时长([整数 音频ID]) - 说明:总时长(毫秒)。
- 参数一│[整数 音频ID]
取音频错误
- 签名:
文本 取音频错误() - 说明:最近一次打开/播放失败原因;成功时多为空文本。
取音频音量
- 签名:
整数 取音频音量([整数 音频ID]) - 说明:返回 0~100。
- 参数一│[整数 音频ID]
淡入音频
- 签名:
逻辑 淡入音频([整数 音频ID], [整数 毫秒=800], [整数 目标音量=-1]) - 说明:从当前音量渐升到目标(-1=100)。省略 ID=当前;不会自动 Play,请先播放。
- 参数一│[整数 音频ID]
- 参数二│[整数 毫秒=800]
- 参数三│[整数 目标音量=-1]: 0~100,-1 表示 100
淡出音频
- 签名:
逻辑 淡出音频([整数 音频ID], [整数 毫秒=800]) - 说明:音量渐降到 0 后暂停。省略 ID=当前。
- 参数一│[整数 音频ID]
- 参数二│[整数 毫秒=800]
置音频位置
- 签名:
逻辑 置音频位置([整数 音频ID], 整数 毫秒) - 说明:跳转。省略 ID=当前。
- 参数一│[整数 音频ID]
- 参数二│整数 毫秒
置音频音量
- 签名:
逻辑 置音频音量([整数 音频ID], 整数 音量) - 说明:音量 0~100。省略 ID 则改当前/默认音量。
- 参数一│[整数 音频ID]: 省略则作用于当前
- 参数二│整数 音量: 0~100
静音音频
- 签名:
逻辑 静音音频([整数 音频ID]) - 说明:静音(保留逻辑音量)。省略 ID=静音全部已打开音频。
- 参数一│[整数 音频ID]
音频是否静音
- 签名:
逻辑 音频是否静音([整数 音频ID]) - 说明:是否处于静音。省略 ID=任一路静音则为真。
- 参数一│[整数 音频ID]
多路句柄
本分类共 5 条。
关闭全部音频
- 签名:
无 关闭全部音频() - 说明:关闭全部已打开音频。
关闭音频
- 签名:
逻辑 关闭音频(整数 音频ID) - 说明:关闭指定一路。
- 参数一│整数 音频ID
打开音频
- 签名:
整数 打开音频(文本 文件路径, [整数 音量=-1]) - 说明:打开不播放。成功返回 ID(>0)。
- 参数一│文本 文件路径
- 参数二│[整数 音量=-1]: 0~100;-1 用默认
打开音频字节集
- 签名:
整数 打开音频字节集(字节集 数据, [整数 音量=-1]) - 说明:从字节集打开(不自动播放),返回音频 ID。
- 参数一│字节集 数据
- 参数二│[整数 音量=-1]
音频播放
- 签名:
逻辑 音频播放(整数 音频ID, [逻辑 循环=假], [逻辑 从头=真]) - 说明:播放已打开的音频(异步)。
- 参数一│整数 音频ID
- 参数二│[逻辑 循环=假]
- 参数三│[逻辑 从头=真]: 假=从当前位置继续
事件回调
本分类共 2 条。
取音频完毕ID
- 签名:
整数 取音频完毕ID() - 说明:最近一次触发「置音频完毕」的音频 ID。
置音频完毕
- 签名:
逻辑 置音频完毕(子程序指针 回调, [整数 音频ID]) - 说明:播放自然结束时回调(循环模式下不触发)。省略 ID=全局默认回调。回调在消息线程执行。
- 参数一│子程序指针 回调: &函数名,建议无参或体内用 取音频完毕ID
- 参数二│[整数 音频ID]: 省略则作为全局回调
播放设备
本分类共 3 条。
取音频播放设备名
- 签名:
文本 取音频播放设备名(整数 索引) - 说明:取单个播放设备名称;索引从 0 起。无效索引返回空文本。推荐一次取列表。
- 参数一│整数 索引: 0 ~ 取音频播放设备数()-1
取音频播放设备数
- 签名:
整数 取音频播放设备数() - 说明:本机 waveOut 播放设备数量(等同 数组长度(取音频设备列表()))。
取音频设备列表
- 签名:
文本数组 取音频设备列表() - 说明:枚举本机 waveOut 播放设备名称,返回文本数组(索引与「取音频播放设备名」一致)。
兼容旧命令
本分类共 3 条。
停止声音
- 签名:
无 停止声音() - 说明:兼容:等同 停止音频。
播放声音
- 签名:
逻辑 播放声音(文本 文件路径, [逻辑 异步=真]) - 说明:兼容:等同 播放音频(路径, 异步, 假)。
- 参数一│文本 文件路径
- 参数二│[逻辑 异步=真]
蜂鸣
- 签名:
无 蜂鸣([整数 频率=750], [整数 持续时间=300]) - 说明:系统蜂鸣(Beep)。
- 参数一│[频率]: 默认 750
- 参数二│[持续时间]: 毫秒,默认 300
易错对照
| 错误 | 正确 |
|---|---|
| 循环播放期望完毕回调 | 循环不触发置音频完毕 |
| 1 参置音量写成 ID | 单参=音量;双参=ID+音量 |
| 退出不关音频 | 关闭全部音频() |