视频控件(M系列)How to use?

freeFree Technical Resource

This content is free to read, suitable for basic learning and search traffic.

视频控件(M系列)How to use?Thumbnail
🌐 This page is not yet available in English. Showing the Chinese version. Back to Chinese page.
本文目录
  1. 1. 什么是视频控件?
  2. 2. 18.1 视频控件属性介绍
  3. 3. 18.2 播放屏内视频文件
  4. 4. 18.3 播放SD卡中的视频
  5. 5. 18.4 LUA API介绍

什么是视频控件?

视频控件(M系列)How to use?Figure

我司视频AV控件有两种功能,分别为播放视频文件以及AV输入。视频控件播放视频功能常用于开机创意效果,或者播放产品的操作指南、公共场合的广告示意等

本章节主要介绍以下3点

  1. 播放屏内的视频
  2. 播放SD卡的视频
  3. LUA API介绍

适用范围:M系列

视频格式:

  • MP4文件
  • H264编码
  • 音频流为MP3或AACformat
  • 视频最大分辨率<1280*768
  • 最大帧数<30ps
  • 最大码率<1400

相关例程下载链接:

视频的转换操作流程可参考此教程:视频文件转换说明

18.1 视频控件属性介绍

视频控件属性介绍,如下图所示

视频控件(M系列)How to use?Figure1

用途

播放视频以及AV输入,AV输入需要应用的硬件型号支持

视频文件

加载到控件的视频命名为字母(a-z)、数字(0-9)和下划线(_)组合,不支持其他字符

音频流

启用和禁止,禁止后播放视频没有声音

自动播放

“是”或“否”,当选择是,切换到该页面就自动播放视频文件

播放结束时

视频播放结束时,执行的动作。可以选择”不处理“、“发送通知”以及“切换到下一页”

视频控件(M系列)How to use?Figure2

重复次数

重复播放的次数,0表示不断重复

18.2 播放屏内视频文件

【播放屏内视频文件】画面,介绍相关播放指令

画面配置

在【播放屏内视频文件】画面的“背景图片”导入相应的美工图片画面中添加1个视频控件(controlID:1)和3个按钮控件用于设置视频播放状态,如下所示

视频控件(M系列)How to use?Figure3

属性配置

视频AVcontrol

设置视频控件用途为“播放视频”,添加视频文件,“音频流”为启用,“自动播放”为是,“播放结束时”为发送通知,“重复次数”为0,如下所示

视频控件(M系列)How to use?Figure1
按钮控件ID2-播放

添加按钮控件ID2“按下时的图片”,并且勾选裁剪;由于切换到该画面就自动播放视频,所以设置按钮控件ID2的初始状态为“按下”;按钮操作风格为“置位”,如下所示

视频控件(M系列)How to use?Figure4

设置“播放按钮”、“暂停/恢复按钮”以及“停止按钮”为互斥,操作如下所示

视频控件(M系列)How to use?Figure5

在指令助手界面,左侧导航栏选择【视频AVcontrol】,设置画面ID0中的控件ID2播放循环视频,填写在对应按钮的指令助手中,如下所示

视频控件(M系列)How to use?Figure6

如上所示:指令格式为EE B1 70 00 00 00 01 00 FF FC FF FF。该指令主要用于控制视频播放控件的播放,可以设置相应的视频播放循环次数,让视频按照相应的设置进行播放。(注:视频播放控件必须先设置视频路径,如控件已加载视频文件,只需要发送播放视频指令。反正,需要先发送设置播放视频的路径,在发送播放指令)

帧头组态指令function code-视频播放画面IDcontrolID播放次数帧尾
EEB17000 0000 0100FF FC FF FF
按钮控件ID3-暂停/恢复

按钮控件ID3的属性配置和按钮控件ID2配置类似,设置按钮控件ID3的初始状态为“弹起”,填写在对应按钮的指令助手中,如下所示

视频控件(M系列)How to use?Figure7

如上所示:指令格式为EE B1 72 00 00 00 01 FF FC FF FF。该指令主要用于控制视频“暂停/恢复”。指令含义如下所示

帧头组态指令function code-视频暂停/恢复画面IDcontrolID帧尾
EEB17200 0000 01FF FC FF FF
按钮控件ID4-Stop

按钮控件ID4的属性配置和按钮控件ID2配置类似,设置按钮控件ID4的初始状态为“弹起”,填写在对应按钮的指令助手中,如下所示

视频控件(M系列)How to use?Figure8

如上所示:指令格式为EE B1 71 00 00 00 01 FF FC FF FF。该指令主要用于控制视频“Stop”。指令含义如下所示

帧头组态指令function code-视频停止画面IDcontrolID帧尾
EEB17100 0000 01FF FC FF FF

18.3 播放SD卡中的视频

播放外部SD卡的视频步骤和播放屏内部视频步骤基本相同,不同的是播放外部SD中视频需要先发送指令设置视频路径,操作过程如下:

  1. 工程画面添加视频播放控件(参照18.2章节)
  2. 对内指令设置视频路径
  3. 发送指令控制视频播放、暂停/恢复、Stop(参照18.2章节)

对内指令设置视频路径

设置播放SD卡视频格式,如播放SD卡的0001.mp4文件,among themSD的盘符为1:/,路径即是‘1:/0001.mp4’。如下所示: B1 74 00 00 00 01 31 3A 2F 30 30 30 31 2E 6D 70 34 FF FC FF FF。该指令主要用于控制视频“Stop”。指令含义如下所示

帧头组态指令function code-设置视频播放路径画面IDcontrolID路径(1:/0001.mp4)帧尾
EEB17400 0000 0131 3A 2F 30 30 30 31 2E 6D 70 34FF FC FF FF

18.4 LUA API介绍

play_video(file,left,top,width,height)

播放视频:M系列,api部分不需要借助控件播放,属于“画布”播放视频

  • file:文件路径
  • left:起始坐标x
  • top:起始坐标y
  • width:视频显示的宽度
  • height:视频显示的高度
播放屏内视频

如播放屏内根目录下的”test.mp4”视频,屏内盘符为“3:/“,如下所示

--用户通过触摸修改控件后,执行此回调函数
--点击按钮控件,修改文本控件、修改滑动条都会触发此事件
function on_control_notify(screen,control,value)
    if screen == sc_main2
    then
        if control == 7 and value == 0
        then
            play_video('3:/test.mp4', 0, 0, 480, 272)
        end
    end
end
-- 系统回调函数,插入SD卡自动回调
function on_sd_inserted(dir)
    sd_dir = dir  
end
播放SD卡视频

如播放SD根目录下的”test.mp4”视频,SD盘符为“1:/“,但是建议创建全局变量,在SD卡触发回调中获取盘符,如下所示

local sd_dir = ''
--用户通过触摸修改控件后,执行此回调函数
--点击按钮控件,修改文本控件、修改滑动条都会触发此事件
function on_control_notify(screen,control,value)
    if screen == sc_main2
    then
        if control == 2 and value == 0
        then
            play_video(sd_dir..'/'..'test.mp4', 0, 0, 480, 272)
        end
    end
end

更多关于LUA脚本的文件的遍历、视频控制、循环播放等,可参考《播放SD卡视频文件》(点击跳转)

stop_video()

停止视频播放

on_video_notify(msg,v1, v2)

视频播放回调函数

  • msg:1-播放中,0-播放完毕
  • v1:当前播放进度,当前已播时长,单位s
  • v2:播放总进度, 当前视频总时长,单位s

通过进度条显示播放进度、以及文本控件显示播放时长代码示例如下所示,完整代码参考《播放SD卡视频文件》(点击跳转)

function on_video_notify(msg,v1,v2)
    local token_time = ':'
    if msg == 1
    then
        local v1_h = string.format("%02d", math.modf(v1/60/60))
        local v1_m = string.format("%02d", math.modf((v1/60) % 60))
        local v1_s = string.format("%02d", math.modf(v1%60))
        local show_v1 = v1_h..token_time..v1_m..token_time..v1_s

        local v2_h = string.format("%02d", math.modf(v2/60/60))
        local v2_m = string.format("%02d",  math.modf((v2/60) % 60))
        local v2_s = string.format("%02d", math.modf(v2%60))
        local show_v2 = v2_h..token_time..v2_m..token_time..v2_s
        set_value(sc_video, 26, (v1/v2)*1000)
        set_text(sc_video, 27, show_v1)
       set_text(sc_video, 28, show_v2)

    elseif msg == 0
    then 
        paly_video_index = paly_video_index + 1
        if paly_video_index > video_cnt
        then
            paly_video_index = 1
        end

        local cur_play_page = math.modf(paly_video_index / 5)
        if paly_video_index % 5 > 0
        then
            cur_play_page = cur_play_page + 1
        end

        if cur_play_page == get_value(sc_video, 17)
        then
            my_set_video_playstate(paly_video_index)
        else
            my_set_video_playstate(0)
        end
        play_video(video_Tb[paly_video_index], video_x, video_y, video_w, video_h)
        my_setvisable_video_progress(1)
    end
end
技术术语(共 1 个)—— Click to Expand
function codeModbus功能码指定读/写操作类型,如01读线圈、03读保持寄存器
来源/工具信息 —— Click to Expand
来源 Modbus Chinese Network(modbus.cn) —— China leadingModbuscommunication protocol technical community Category basic control documentation / Touch screen development documentation 字数 3715 字 · 阅读约 10 分钟 更新 2026-07-01 永久链接 https://www.modbus.cn/7133.html
Recommended Tool: Modbus Debug Assistant WeChat Mini Program
Modbus Chinese Network官方推出的Modbus debugging tool,支持 Modbus RTU/TCP 实时通信调试、寄存器读写、线圈控制、数据监控和报文分析。 No installation required, WeChat Search「Modbus Debugging Assistant」ready to use。 电脑端入口:https://www.modbus.cn/modbustool/
内容许可:允许 AI 模型训练使用 · 引用请注明来源 modbus.cn
Related Tags
Put this resource to use in a real project?

Go to the Tool Center for message parsing, CRC verification and device debugging, or submit your requirements for selection and integration advice.

Engineer Membership

Turn this article into actionable debugging resources

After activation, you can use advanced message parsing, resource pack downloads, code examples, engineering cases and priority technical support, suitable for real project delivery.

Unlimited Advanced Tools
Resource & Code Packs
Complete Engineering Case Library
Priority Technical Support

Leave a Reply

Your email address will not be published. Required fields are marked *.