YStudio Y++

音频支持库

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

路径:支持库 → 音频支持库。

硬约束

  1. 扁平命令;优先 Media Foundation(MFPlay),失败回退 MCI。
  2. 简易命令操作「当前」音频;打开音频 最多 16 路。
  3. 音量 0~100;-1 = 默认/不改。带可选 ID:置音频音量([ID], 音量) —— 1 参=音量,2 参=ID+音量。
  4. 置音频完毕 仅自然播完触发;循环播放不触发。
  5. 字节集播放会写临时文件,关闭槽位时删除。退出前建议 关闭全部音频()。

快速开始

函数 播完 () {
    输出("完毕 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+音量
退出不关音频 关闭全部音频()

相关

图片支持库 · 回调 · 多线程