YStudio Y++

视频类

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

类对象支持库(不是扁平命令)。路径:支持库 → 扩展类库 → 视频类。

类型名必须写完整「视频类」。声明时自动创建,一般无需再调 创建*。

硬约束

  1. 类型名必须写「视频类」。本类是通用会话构建块,不是写死的监控程序。
  2. 本机 USB 摄像头请用 摄像头类;本类面向文件 / URL(及本机 MF 能打开的源)。
  3. 预览推送到图片框;抓拍用 取一帧()(JPEG);录像写 .mp4。
  4. 多路画面 = 多个 视频类 实例;通道表、告警、云台由你的程序实现。
  5. RTSP / 冷门编码若打开失败,见 取错误();可自备解码 DLL(见 third-party-dll.md)或后续扩展后端。

快速开始

视频类 v
如果 (!v.打开("demo.mp4")) {
    输出(v.取错误())
    返回 ()
}
v.置循环(假)
v.置音量(80)
v.置播完(&播完)
v.开始预览(图片框1)
' 抓拍
字节集 jpg = v.取一帧()
输出("进度=" + 到文本(v.取进度()) + "/" + 到文本(v.取时长()))
' 录像(预览过程中写帧;部分环境暂不可用见取错误)
v.开始录像("录\\demo.mp4")
' ……
v.停止录像()
v.停止预览()
v.关闭()
函数 播完() {
    输出("播完 id=" + 到文本(取视频播完ID()))
}

多路示例(用户自拼 UI):

视频类 路1
视频类 路2
路1.打开(通道表[0])
路2.打开(通道表[1])
路1.开始预览(图片框1)
路2.开始预览(图片框2)

视频类/创建

创建视频

  • 签名:视频类 创建视频()
  • 说明:通用视频会话(Media Foundation)。一般直接写「视频类 v」。

视频类/方法

打开

  • 签名:逻辑 打开(文本 源)
  • 说明:打开本地路径或 URL。

关闭 / 是否打开

取一帧

  • 签名:字节集 取一帧()
  • 说明:JPEG 字节集;失败返回空。

开始预览 / 停止预览 / 是否预览中

  • 开始预览(组件名 图片框, [整数 间隔毫秒=66])

开始录像 / 停止录像 / 是否录像中

  • 开始录像(文本 路径):建议 .mp4(H.264)

置循环 / 取循环

  • 文件末尾是否循环。

暂停 / 继续 / 是否暂停

  • 暂停预览推进与伴音;继续 在播完后会从头再播。

取进度 / 置进度 / 取时长 / 是否播完

  • 进度与时长单位为毫秒;直播或未知源时长可能为 0。网络流定位可能失败。

置音量 / 取音量 / 置静音 / 是否静音

  • 音量 0~100。伴音(音频库 MFPlay)与视频 MTA 解码同进程会堆损坏,当前默认不自动伴音;置音量/静音 仍可用(无伴音时为 no-op)。http(s)/rtsp 本身也可能无声。

置播完 / 置出错(事件)

  • v.置播完(&播完) / v.置出错(&出错):回调在界面定时器线程。
  • 取视频播完ID() / 取视频出错ID():最近一次触发的会话序号(1 起)。

取宽度 / 取高度 / 取源 / 取错误


易错对照

错误 正确
类型写成「视频」 必须「视频类」
用本类开 USB 设备索引 用「摄像头类」
忘记关闭 退出前关闭各路会话

相关

设计器组件「视频播放器」(悬停控制条 + YSS)见 视频播放器。本页「视频类」是可编程会话构建块。

摄像头类 · 图片支持库 · 第三方 DLL