扁平命令式支持库(不是类)。路径:支持库 → 音频支持库。
优先 Media Foundation(MFPlay),失败回退 MCI。简易命令操作「当前」音频;打开音频 最多 16 路。
格式
常见:WAV / MP3 / WMA / M4A / AAC(取决于本机解码器)。失败时用 取音频错误()。
快速开始
函数 播完 () {
输出("完毕 id=" + 到文本(取音频完毕ID()))
}
函数 主窗口.创建完毕 () {
置音频完毕(&播完)
置音频音量(80)
如果 (!播放音频("C:\\Windows\\Media\\Alarm01.wav")) {
输出(取音频错误())
}
}
函数 主窗口.即将关闭 () {
关闭全部音频()
}
多路 + 分路音量
整数 bgm = 打开音频("bgm.mp3", 40)
整数 sfx = 打开音频("click.wav", 100)
置音频音量(bgm, 40) // 可选 ID 在前:([ID], 音量)
置音频音量(sfx, 100)
音频播放(bgm, 真)
音频播放(sfx)
播放设备列表
文本 设备[] = 取音频设备列表()
输出("设备数=", 数组长度(设备))
计次循环 (整数 i = 0, 数组长度(设备) - 1) {
输出(到文本(i) + ": " + 设备[i])
}
也可用 取音频播放设备数() / 取音频播放设备名(索引) 按索引取单个名称。
静音 / 字节集
播放音频("bgm.mp3")
静音音频()
如果 (音频是否静音()) {
取消静音音频()
}
字节集 raw = 到字节集("tip.wav")
播放音频字节集(raw)
命令一览
| 命令 | 返回 | 说明 |
|---|---|---|
播放音频(路径, [异步], [循环], [音量=-1]) |
逻辑 | 打开并播 |
暂停/继续音频([ID]) |
逻辑 | 省略=全部在播 / 全部已暂停 |
停止音频([ID]) |
无 | 省略=关闭全部 |
淡出音频([ID], [毫秒=800]) |
逻辑 | 渐降到 0 后暂停 |
淡入音频([ID], [毫秒], [目标音量]) |
逻辑 | 渐升音量 |
静音音频([ID]) / 取消静音音频([ID]) |
逻辑 | 静音保留逻辑音量 |
音频是否静音([ID]) |
逻辑 | |
播放音频字节集(字节集, …) / 打开音频字节集(字节集, …) |
逻辑 / 整数 | 内存数据(临时文件,关闭时删) |
取音频设备列表() |
文本数组 | waveOut 设备名列表(推荐) |
取音频播放设备数() / 取音频播放设备名(索引) |
整数 / 文本 | 按索引枚举 |
音频是否播放/暂停([ID]) |
逻辑 | |
置音频音量([ID], 音量) |
逻辑 | 1 参=音量;2 参=ID+音量 |
取音频音量/时长/位置([ID]) |
整数 | |
置音频位置([ID], 毫秒) |
逻辑 | 同上可选 ID |
取音频错误() |
文本 | 最近失败原因 |
打开音频(路径, [音量]) |
整数 | 返回 ID(≥1) |
音频播放(ID, [循环], [从头=真]) |
逻辑 | |
关闭音频(ID) / 关闭全部音频() |
逻辑 / 无 | |
置音频完毕(&回调, [ID]) |
逻辑 | 自然结束回调(循环不触发) |
取音频完毕ID() |
整数 | |
播放声音 / 停止声音 / 蜂鸣 |
— | 兼容 |
注意
- 可选音频 ID 的命令形如
置音频音量([ID], 音量):写一个参数时当作音量,两个参数时为 ID + 音量。 - 静音不改变
取音频音量()返回的逻辑音量;取消静音后按该值恢复输出。 - 字节集播放会写临时文件(按内容猜测
.wav/.mp3/.m4a等),关闭槽位时删除。