类对象支持库(不是扁平命令)。路径:支持库 → 扩展类库 → 视频类。
类型名必须写完整「视频类」。声明时自动创建,一般无需再调 创建*。
硬约束
- 类型名必须写「视频类」。本类是通用会话构建块,不是写死的监控程序。
- 本机 USB 摄像头请用 摄像头类;本类面向文件 / URL(及本机 MF 能打开的源)。
- 预览推送到图片框;抓拍用
取一帧()(JPEG);录像写.mp4。 - 多路画面 = 多个
视频类实例;通道表、告警、云台由你的程序实现。 - 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)见 视频播放器。本页「视频类」是可编程会话构建块。