YStudio Y++

音频支持库

Y++ / YStudio 开发文档 · 一点滴

扁平命令式支持库(不是类)。路径:支持库 → 音频支持库

优先 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 等),关闭槽位时删除。