19 视频控件-物联型
什么是视频控件?
我司视频AV控件有两种功能,分别为播放视频文件以及AV输入。视频控件播放视频功能常用于开机创意效果,或者播放产品的操作指南、公共场合的广告示意等
本章节主要介绍以下3点
- 播放屏内的视频
- 播放U盘/SD卡的视频
- LUA API介绍
适用范围:物联型
视频格式:
- MP4文件
- H264编码
- 音频流为MP3或AAC格式
- 视频最大分辨率<1280*768
- 最大帧数<30ps
- 最大码率<1400
相关例程下载链接:
- 《物联型播放视频应用》(点击跳转)
视频的转换操作流程可参考此教程:视频文件转换说明
19.1 视频控件属性介绍
视频控件属性介绍,如下图所示
用途
播放视频以及AV输入,AV输入需要应用的硬件型号支持
视频文件
加载到控件的视频命名为字母(a-z)、数字(0-9)和下划线(_)组合,不支持其他字符
音频流
启用和禁止,禁止后播放视频没有声音
自动播放
“是”或“否”,当选择是,切换到该页面就自动播放视频文件
播放结束时
视频播放结束时,执行的动作。可以选择”不处理“、“发送通知”以及“切换到下一页”
重复次数
重复播放的次数,0表示不断重复
19.2 播放屏内视频文件
【播放屏内视频文件】画面,介绍相关播放指令
画面配置
在【播放屏内视频文件】画面的“背景图片”导入相应的美工图片画面中添加1个视频控件(控件ID:1)和3个按钮控件用于设置视频播放状态,如下所示
属性配置
视频AV控件
设置视频控件用途为“播放视频”,添加视频文件,“音频流”为启用,“自动播放”为是,“播放结束时”为发送通知,“重复次数”为0,如下所示
按钮控件ID2-播放
添加按钮控件ID2“按下时的图片”,并且勾选裁剪;由于切换到该画面就自动播放视频,所以设置按钮控件ID2的初始状态为“按下”;按钮操作风格为“置位”,如下所示
设置“播放按钮”、“暂停/恢复按钮”以及“停止按钮”为互斥,操作如下所示
在指令助手界面,左侧导航栏选择【视频AV控件】,设置画面ID0中的控件ID2播放循环视频,填写在对应按钮的指令助手中,如下所示
如上所示:指令格式为EE B1 70 00 00 00 01 00 FF FC FF FF。该指令主要用于控制视频播放控件的播放,可以设置相应的视频播放循环次数,让视频按照相应的设置进行播放。(注:视频播放控件必须先设置视频路径,如控件已加载视频文件,只需要发送播放视频指令。反正,需要先发送设置播放视频的路径,在发送播放指令)
帧头 | 组态指令 | 功能码-视频播放 | 画面ID | 控件ID | 播放次数 | 帧尾 |
---|---|---|---|---|---|---|
EE | B1 | 70 | 00 00 | 00 01 | 00 | FF FC FF FF |
按钮控件ID3-暂停/恢复
按钮控件ID3的属性配置和按钮控件ID2配置类似,设置按钮控件ID3的初始状态为“弹起”,填写在对应按钮的指令助手中,如下所示
如上所示:指令格式为EE B1 72 00 00 00 01 FF FC FF FF。该指令主要用于控制视频“暂停/恢复”。指令含义如下所示
帧头 | 组态指令 | 功能码-视频暂停/恢复 | 画面ID | 控件ID | 帧尾 |
---|---|---|---|---|---|
EE | B1 | 72 | 00 00 | 00 01 | FF FC FF FF |
按钮控件ID4-停止
按钮控件ID4的属性配置和按钮控件ID2配置类似,设置按钮控件ID4的初始状态为“弹起”,填写在对应按钮的指令助手中,如下所示
如上所示:指令格式为EE B1 71 00 00 00 01 FF FC FF FF。该指令主要用于控制视频“停止”。指令含义如下所示
帧头 | 组态指令 | 功能码-视频停止 | 画面ID | 控件ID | 帧尾 |
---|---|---|---|---|---|
EE | B1 | 71 | 00 00 | 00 01 | FF FC FF FF |
19.3 播放U盘/SD卡中的视频
播放外部U盘/SD卡的视频步骤和播放屏内部视频步骤基本相同,不同的是播放外部U盘/SD中视频需要先发送指令设置视频路径,操作过程如下:
- 工程画面添加视频播放控件(参照19.2章节)
- 对内指令设置视频路径
- 发送指令控制视频播放、暂停/恢复、停止(参照19.2章节)
对内指令设置视频路径
设置SD卡路径
设置播放SD卡视频格式,如播放SD卡的0001.mp4文件,其中SD的盘符为SD:/,路径即是‘SD:/0001.mp4’
如下所示:EE B1 74 00 00 00 01 73 64 3A 2F 30 30 30 31 2E 6D 70 34 FF FC FF FF 。该指令主要用于控制视频“停止”。指令含义如下所示
帧头 | 组态指令 | 功能码-设置视频播放路径 | 画面ID | 控件ID | 路径(SD:/0001.mp4) | 帧尾 |
---|---|---|---|---|---|---|
EE | B1 | 74 | 00 00 | 00 01 | 73 64 3A 2F 30 30 30 31 2E 6D 70 34 | FF FC FF FF |
设置U盘路径
设置播放U盘视频格式,如播放U盘的0001.mp4文件,其中U盘的盘符为U:/,路径即是‘U:/0001.mp4’
如下所示:EE B1 74 00 00 00 01 75 73 62 3A 2F 74 65 73 74 2E 6D 70 34 FF FC FF FF 。该指令主要用于控制视频“停止”。指令含义如下所示
帧头 | 组态指令 | 功能码-设置视频播放路径 | 画面ID | 控件ID | 路径(SD:/0001.mp4) | 帧尾 |
---|---|---|---|---|---|---|
EE | B1 | 74 | 00 00 | 00 01 | 75 73 62 3A 2F 74 65 73 74 2E 6D 70 34 | FF FC FF FF |
19.4 LUA API介绍
play_video(pathname,repeat)
播放视频当前页面的视频控件,适用于物联型
- pathname为视频路径
- repeat为重复次数,0为无限制次,
播放屏内视频
如播放屏内Videos目录下的”1.mp4”视频,屏内盘符为“a:/“,如下所示
--用户通过触摸修改控件后,执行此回调函数
--点击按钮控件,修改文本控件、修改滑动条都会触发此事件
function on_control_notify(screen,control,value)
if screen == sc_main2
then
if control == 7 and value == 0
then
play_ video(‘a:/Videos/1.mp4’,0)
end
end
end
播放U盘/SD卡视频
如播放U盘/SD根目录下的”test.mp4”视频,建议创建全局变量,在U盘/SD卡触发回调中获取盘符,如下所示
local sd_dir = ''
local usb_dir = ''
--用户通过触摸修改控件后,执行此回调函数
--点击按钮控件,修改文本控件、修改滑动条都会触发此事件
function on_control_notify(screen,control,value)
if screen == sc_main2
then
-- 假设视频控件ID为1,视频控件开启通知后,播放完毕会触发控件回调函数
if control == 1 and value == 0
then
--do user logic
elseif control == 2 and value == 0 -- 按钮按下播发SD卡视频
then
play_video(sd_dir..'/'..'test.mp4', 0, 0, 480, 272)
elseif control == 3 and value == 0 -- 按钮按下播发U盘视频
then
play_video(usb_dir..'/'..'test.mp4', 0, 0, 480, 272)
end
end
end
-- 系统回调函数,插入SD卡自动回调
function on_sd_inserted(dir)
sd_dir = dir
end
-- 系统回调函数,插入SD卡自动回调
function on_sd_inserted(dir)
usb_dir = dir
end
更多关于LUA脚本的文件的遍历、视频控制、循环播放等,可参考《播放SD卡视频文件》(点击跳转)
stop_video()
停止视频播放