名称 | 操作 | 版本 | 日期 | 说明 | 编辑 |
《视频控件使用说明》 | 创建中 | V1.0 | 2019-01-17 | 第一次编辑完成,正式发布。 | lyh |
《视频控件使用说明》 | 修订 | V1.1 | 2020-08-24 | 补充本控件中所有属性详解 | qjj |
【目录】
一、视频控件-概述
3.1、控件属性描述
3.2、控件属性编辑
3.2.1、编辑属性
3.2.2、读属性
3.2.3、写属性
3.3 、属性详解
3.3.1、x,y属性
3.3.2、w,h属性
3.3.3、time属性
3.3.4、first属性
3.3.5、effect属性
3.3.6、aph属性
3.3.7、drag属性
3.3.8、vscope属性
3.3.9、objname属性
3.3.10、id属性
3.3.11、type属性
3.3.12、disup属性
3.3.13、from属性
3.3.14、vid属性
3.3.15、path属性
3.3.16、en属性
3.3.17、loop属性
3.3.18、dis属性
3.3.19、tim属性
3.3.20、stim属性
3.3.21、qty属性
4.1、在页面上新建视频控件
4.2、视频控件外观调整
4.3、运行中改变视频控件显示内容
4.4、视频控件加载特效设置
4.5、视频控件移动特效使用
1.1、视频控件是串口屏诸多功能控件里面的其中一个。
1.2、用于在串口屏上播放视频。
1.3、在《USART HMI》软件左侧工具箱里面,(如下图所示)。
仅x5系列支持
视频控件特有播放完成事件。
用视频控件,做自己的第一个显示工程(如下图所示)。
▲一个纯色页面使用<视频控件>显示视频
串口屏所有控件操作的实质都是对属性的修改。视频控件具有的属性如下表所示。
如下图所示,当鼠标选中对应属性时,会在属性窗口的最下方出现该属性的详细描述信息。
用户可以随时调整、编辑列表中的属性参数。
注意:type和id属性由开发环境指定,用户不可修改。id可通过软件左上角置顶置底间接修改。
如上图所示的控件属性列表,可以在设备运行中随时读取。
sys0=t0.id 将视频控件v0的id号赋值给sys0变量 v0.x+=10 将控件在屏幕上的位置向右移动10个像素点。 prints v0.vid,0 将v0的视频id从串口发送出去。
注意:objname属性不可以读取。比如在事件代码中写"v0.vid=v0.objname"编译将报错。
所有绿色控件可以在运行中实时修改。
注意:因产品系列不同,属性的写权限也不完全相同。比如X系列可以在运行该过程中修改x,y属性。但是T0,K0系列不能在运行过程中修改x,y属性!
x,y属性描述控件在屏幕上的像素坐标位置。以屏幕左上角为像素坐标原点(x=0,y=0)。
T0,K0系列产品,x,y属性只能从:0–最大分辨率。不能超出屏幕显示区域。
X系列产品,x,y属性可以超出屏幕坐标范围(-6000~+6000),但是超出屏幕将被裁减,不会显示出来。
技巧:如果想做一个控件,但是不想让用户看到,触摸到。可以把该控件放在屏幕显示区域以外。开发人员使用的时候,使用click指令,
或者绑定用户IO
w,h属性描述控件在屏幕上宽度和高度(像素大小为单位)。
T0,K0系列产品,w,h属性只能从:0–最大分辨率。不能超出屏幕显示区域。
X系列产品,x+w,y+h的值可以超出屏幕坐标范围,但是超出屏幕将被裁减,不会显示出来。
time属性。控件特效执行时间属性。仅X系列支持,且effect设置不为0以后才存在该属性。
当设置了控件的加载特效以后,控件在time的时间内,以设置的特效方式飞到控件所在屏幕的坐标位置。
first属性。控件加载特效的优先级属性。仅X系列支持,且effect设置不为0以后才存在该属性。
first可设置的值为0-100。支持多个有特效的控件为同一级别优先级。同一优先级的控件,将在同时被加载到屏幕上显示。
不同优先级的优先级中,将根据设置值从大到小依次完成加载。
effect属性。控件加载特效属性。目前一共支持9种效果。仅X系列支持该属性。
0-立即加载;1-上边飞入;2-下边飞入;3-左边飞入;4-右边飞入;5-左上角飞入;6-右上角飞入;7-左下角飞入;8-右下角飞入
aph属性。控件半透明属性。仅X系列支持。
aph可设置的值范围为0-127 。为0时控件将全透明(效果为不显示),为127时全显示(没有半透明效果);
drag属性。控件运行过程中是否支持拖动属性。仅X系列支持。
vscope属性。控件内存占用属性。控件支持私有和全局属性。
当设置为全局时,控件分配的内存在所有页面都可以访问。离开当前页面后,控件属性数据也不会丢失。缺点是,占用系统总内存。
objname属性。控件名称属性。该属性在运行中不能获取。
id属性。控件id是每个控件在当前页面的唯一标识号。由系统分配,不可修改。可通过软件左上角置顶置底间接修改。
type属性。控件类型属性。由系统分别固定数据,比如视频控件属性为3。
disup属性。产生拖动后是否禁用弹起事件:0-否;1-是。默认为否,即拖动的时候是会触发弹起事件。仅当drag=是时,才存在该属性
from属性。播放源:0-内部资源文件;1-外部文件。
vid属性。视频ID。用户指定一个视频文件资源作为视频播放,仅当from=0时,存在该属性。
path属性。外部视频文件路径(如:"ram/0.video"或"sd0/1.video"),仅当from=1时,存在该属性。
en属性。播放状态(0-停止;1-播放;2-暂停)。
loop属性。循环播放:0-否;1-是。
dis属性。播放速度百分比(最小10,最大1000)。
tim属性。当前播放时间(ms)。
stim属性。总时间(由视频文件决定,不可设置,运行中可获取)。
qty属性。总帧数(由视频文件决定,不可设置,运行中可获取)。
参考文本控件
![]() | |
1、打开一个新的空白界面▲ | 2、点击左侧<工具箱>里面的<文本>按钮,当前页面出现一个文本框▲ |
注:视频控件会根据视频id分辨率自动调整控件大小。
软件有专门视频转换工具,点击查看
上一步我们创建了一个视频控件,现在我们编辑视频控件的外观(显示效果)。
将视频控件移显示区中心位置。
I.新添加上“视频控件”预览 | II.摆放到指定位置并 | III.操作说明 |
![]() | ![]() | ▷移动位置:鼠标选中控件,拖到需要摆放的位置。 |
注:视频控件会根据视频id分辨率自动调整控件大小。
4.3.1通过“按下或弹起事件”改变当前页面中视频控件播放状态
例(1):按下当前页面中的按钮,让当前页面中的视频控件v0视频暂停。
按钮“弹起事件 或 按下事件”里面代码如下:
v0.en=2
代码解释:
v0 :当前页面中,控件名称为 v0 的视频控件
.en :视频控件 v0 属性列表中的其中一个属性,用于改变播放状态。
= :C语言赋值符号
2 :2 为数值
4.3.2通过“按下或弹起事件”改变其他页面中视频控件播放状态
例(2):按下当前页面中的按钮,让其他页面(页面名称叫 set)中的视频控件v0视频暂停。
注:v0控件属性vscope必须设置为全局,否则会报错。
按钮“弹起事件/或按下事件”里面代码如下:
set.v0.en=2
代码解释:
set :页面名称
.v0 :set页面中名字为 v0 的视频控件
.en :视频控件 v0 属性列表中的其中一个属性,用于改变播放状态。
= :C语言赋值符号
2 :2 为数值
示例(1):串口发送数据让当前页面中的视频控件v0视频暂停。
串口发送数据代码:
Serial.print("v0.en=2");
Serial.write(hexEND,3);
代码解释:
Serial.print(); 单片机串口发送字符串函数
"v0.en=2" 需要发给屏的C语言字符串命令
Serial.write(); 单片机串口发送16进制函数
hexEND,3 提前定义好的元素为3个16进制 0xff 的数组
示例(2):串口发送数据让其他页面(页面名称叫 set)中的视频控件v0视频暂停。
注:v0控件属性vscope必须设置为全局,否则会报错。
串口发送数据代码:
Serial.print("set.v0.en=2");
Serial.write(hexEND,3);
代码解释:
Serial.print(); 单片机串口发送字符串函数
"set.v0.en=2" 需要发给屏的C语言字符串命令,其中 set 是页面名称。
Serial.write(); 单片机串口发送16进制函数
hexEND,3 提前定义好的元素为3个16进制 0xff 的数组
示例(1):串口发送数据让当前页面中的视频控件v0视频暂停。
串口助手发送数据代码:
v0.en=2
ff ff ff
串口助手截图 | 操作说明 |
![]() | ① 选择串口号(选择你电脑连接屏使用的串口号) ② 设置波特率 |
![]() ![]() | ③ 输入字符串指令 ④ 输入16进制结束符 |
示例(2):串口发送数据让其他页面(页面名称叫 set)中的视频控件视频暂停。
注:v0控件属性vscope必须设置为全局,否则会报错。
串口发送数据代码:
set.v0.en=2
ff ff ff
串口助手截图 | 操作说明 |
![]() | ① 选择串口号(选择你电脑连接屏使用的串口号) ② 设置波特率 |
![]() ![]() | ③ 输入字符串指令 ④ 输入16进制结束符 |
注:此功能目前只有【X3系列 和 X5系列】产品支持。
加载特效示意图 | 属性设置 | 操作说明 |
控件设置加载特效后,当控件所在页面刷新时,控件会按照设置的加载方式呈现出来。 注:由于本页面不支持视频,无法展示动态效果。只能用图文简要说明。不便之处敬请谅解。 | ![]() | ▷属性设置方法: 控件加载特效默认是“立即加载”即无特效。 鼠标单击选中控件 → 在属性列表中找到“加载特效”选项(如左图①所示)并点击箭头处,会弹出下来列表(如图②所示),选择一个你想要的的加载方式,即完成控件加载特效设置。 ▷其他: 你可能已经注意到了,“加载特效”这个属性是绿色,也就是说屏在运行时加载特效是允许改变的。加载特效的改变方法和改变文本控件背景色的操作一致,唯一不同的是“属性名称不一样”参数不一样。 |
参考文本控件
文本控件移动示例:
注:此功能目前只有【X3系列 和 X5系列】产品支持。
加载特效示意图 | 移动指令 | 操作说明 |
过 程 太 炫 酷 无 法 展示 (请自行测试) | ① 可视化移动指令格式: move obj,starx,stary,endx,endy,first,time obj:控件名称或控件ID starx:起始坐标X stary:起始坐标Y endx:结束坐标X endy:结束坐标Y first:优先级(0-100,数字越大优先级越大) time:移动时间(单位ms) , :分隔符 ② 无过程移动指令格式: obj.x=x obj:控件名称 .x:控件X坐标属性 =:赋值符号 x:终点x坐标 obj.y=y obj:控件名称 .y:控件X坐标属性 =:赋值符号 y:终点y坐标 | ▷ 可视化移动操作说明 ① 将 t0 控件从当前位置可视化移动到t1位置(假设页面上有一个控件叫做 t1),指令如下: move t0,t0.x,t0.y,t1.x,t1.y,0,300 代码注释:控件t0可视化移动方式,移动到t1的位置,无优先级,移动时间300ms ② 将 t0 控件从当前位置可视化移动到指定位置(位置:x坐标 200,y坐标 100),指令如下: move t0,t0.x,t0.y,200,100,0,300 代码注释:控件t0可视化移动方式,移动到x坐标为200,y坐标为100的位置,无优先级,移动时间300ms ③ 将t0移动到显示区外面去(假如水平移到最右侧外面,以4.3寸屏为例)指令如下: move t0,t0.x,t0.y,481,t0.y,0,300 代码注释:控件t0可视化移动方式,x坐标位481,y坐标保持现有坐标不变,移动事件300ms。(备注:4.3寸屏的分辨率480X272,当X坐标设置为481时,就会看到控件从当前位置向右移动到屏幕外面去,这个过程耗时300ms) !!!注意: 可视化移动模式,最小移动时间限制到150ms,因为时间太短就看不出来移动效果了。 ▷ 无过程移动操作说明 ① 将 t0 控件从当前位置无过程移动到t1位置(假设页面上有一个控件叫做 t1),指令如下: t0.x=t1.x t0.y=t1.y 代码注释:把t1的x坐标和y坐标赋值给,t0的x坐标和y坐标。 ② 将 t0 控件从当前位置无过程移动指定位置(位置:x坐标 200,y坐标 100),指令如下: t0.x=200 t0.y=100 代码注释:给t0的x坐标和y坐标直接赋值。 ③ 将t0无过程移动到显示区外面去(水平右侧外面,以4.3寸屏为例)指令如下: t0.x=801 代码注释:给t0的x坐标直接赋值,由于y坐标不变,y坐标不用赋值。 特别说明: 控件移动只是移动位置,控件的所有功能不会因为移动而改变,非常方便有运行中移动空加需求的场景使用(例如:密码键盘、操作菜单等等) 控件移出显示区,根据自己需要使用。 另外,如果您只是想不让控件显示出来,可以用隐藏指令,不需要用移动指令。点击查阅【隐藏指令】的使用。 |
X5出厂样例视频功能实现 点击下载
素材说明
通过按钮控件暂停,继续播放视频;加速,减速视频
通过滑块控件视频亮度调节,声音调节。
END