什么是视频控件?

我司视频AV控件有两种功能,分别为播放视频文件以及AV입력。视频控件播放视频功能常用于开机创意效果,或者播放产品的操作指南、公共场合的广告示意等
本章节主要介绍以下3点
- 播放屏内的视频
- 播放SD卡的视频
- LUA API介绍
适用范围:M시리즈
视频형식:
- MP4文件
- H264编码
- 音频流为MP3或AAC형식
- 视频最大分辨率<1280*768
- 最大帧数<30ps
- 最大码率<1400
相关例程下载链接:
视频的转换操作流程可参考此튜토리얼:视频文件转换설명
18.1 视频控件属性介绍
视频控件属性介绍,如下图所示

用途
播放视频以及AV입력,AV입력需要적용的硬件型号支持
视频文件
불러오기到控件的视频命名为字母(a-z)、数字(0-9)和下划线(_)组合,不支持其他문자
音频流
활성화和禁止,禁止后播放视频没有声音
自动播放
“是”或“否”,当选择是,전환到该页面就自动播放视频文件
播放종료时
视频播放종료时,执行的动作。可以选择”不处理“、“보내기通知”以及“전환到다음 페이지”

重复次数
重复播放的次数,0表示不断重复
18.2 播放屏内视频文件
【播放屏内视频文件】화면,介绍相关播放指令
화면설정
在【播放屏内视频文件】화면的“背景图片”导入相应的美工图片화면中추가1个视频控件(控件ID:1)和3个버튼控件用于设置视频播放状态,如下所示

属性설정
视频AV控件
设置视频控件用途为“播放视频”,추가视频文件,“音频流”为활성화,“自动播放”为是,“播放종료时”为보내기通知,“重复次数”为0,如下所示

버튼控件ID2-播放
버튼 컨트롤 ID 2 " 추 적 때 사진 " 을 추가 하고 잘 라 내 기를 선택 합니다 . 이 화 면 으로 전환 하면 비디오 가 자동 으로 재생 되기 때문에 버튼 컨트롤 ID 2 의 초기 상태를 " 추 적 " 으로 설정 합니다 . 버튼 작업 스타 일은 다음과 같이 " 설 정 " 입니다 .

다음과 같이 재생 버튼 , 일시 중지 / 재 개 버튼 및 중지 버튼 을 상호 배 타 적으로 설정 합니다 .

명령 도우 미 인터페 이스 에서 왼쪽 탐 색 모 음 에서 [ 비 디오 AV 컨트롤 ] 을 선택 하고 화 면 ID 0 의 컨트롤 ID 2 를 설정 하여 루 프 비디오를 재생 하고 아래 와 같이 해당 버튼 의 명령 도우 미 에 기 입 합니다 .

위에서 설명 한 것처럼 : 명령 형 식은 EE B 1 70 00 00 00 01 00 FF FC FF 입니다 .이 명령 은 주로 비디오 재생 컨트롤 의 재생 을 제어 하는 데 사용 되며 , 해당 비디오 재생 루 프 횟 수를 설정 하여 비디오 가 해당 설정 에 따라 재생 되도록 할 수 있습니다 . (참 고 : 비디오 재생 컨트롤 은 비디오 경 로를 설정 해야 하며 , 컨트롤 이 비디오 파일을 로 드 한 경우 비디오 재생 명령 만 보내 야합니다 .)어쨌든 , 비디오 재생 의 경 로를 설정 하고 재생 명령을 보내 야합니다 .)
| 帧头 | 구성(SCADA)指令 | 기능 코드-视频播放 | 화면ID | 控件ID | 播放次数 | 帧尾 |
|---|
단 추 컨트롤 ID 3 - 일시 중지 / 재 개
버튼 컨트롤 ID 3 의 속 성 구성 은 버튼 컨트롤 ID 2 구성 과 유사 하며 , 버튼 컨트롤 ID 3 의 초기 상태 는 " 바 운드 " 로 설정 되어 해당 버튼 의 명령 도우 미 에 다음과 같이 채워 집니다 .

위에서 설명 한 것처럼 : 명령 형 식은 EE B 1 72 00 00 00 01 FF FC FF 입니다 .이 명령 은 주로 비디오 " 정 지 / 재 개 " 를 제어 하는 데 사용됩니다 .명령 의 의미는 다음과 같다 .
| 帧头 | 구성(SCADA)指令 | 기능 코드-视频暂停/恢复 | 화면ID | 控件ID | 帧尾 |
|---|
버튼 컨트롤 ID 4 - 중지
버튼 컨트롤 ID 4 의 속 성 구성 은 버튼 컨트롤 ID 2 구성 과 유사 하며 , 버튼 컨트롤 ID 4 의 초기 상태 는 " 바 운드 " 로 설정 되어 해당 버튼 의 명령 도우 미 에 다음과 같이 채워 집니다 .

위에서 설명 한 것처럼 : 명령 형 식은 EE B 1 71 00 00 00 01 FF FC FF 입니다 .이 명령 은 주로 비디오 의 " 정 지 " 를 제어 하는 데 사용됩니다 .명령 의 의미는 다음과 같다 .
| 帧头 | 구성(SCADA)指令 | 기능 코드-视频정지 | 화면ID | 控件ID | 帧尾 |
|---|
18. 3 SD 카드 에서 비디오 재생
외부 SD 카드를 재생 하는 비디오 단계는 기본적으로 재생 화 면 내부 비디오 단계 와 동일 하며 , 차이 점은 외부 SD 에서 비디오를 재생 하려면 비디오 경 로를 설정 하기 위해 명령을 보내 야 한다는 것입니다 .
- 엔지니어링화면추가视频播放控件(参照18.2章节)
내부 명령 에 대한 비디오 경 로 설정
SD 카드 의 000 1. mp 4 파일을 재생 하는 것과 같은 SD 카드 의 비디오 형 식을 재생 하도록 설정 하십시오 . 여기서 SD 의 디 스크 문 자는 1: / 이며 경 로는 ' 1: / 000 1. mp 4 ' 입니다 . B 1 74 00 00 00 01 31 3 A 2 F 30 30 30 31 2 E 6 D 70 34 FF FC FF FF .이 명령 은 주로 비디오 의 " 정 지 " 를 제어 하는 데 사용됩니다 .명령 의 의미는 다음과 같다 .
| 帧头 | 구성(SCADA)指令 | 기능 코드-设置视频播放路径 | 화면ID | 控件ID | 路径(1:/0001.mp4) | 帧尾 |
|---|
18. 4 LU A API 소개
play _ video (file , left , top , wid th , he ight)
비디오 재생 : M 시리즈 , API 부분은 컨트롤 을 통해 재생 할 필요가 없으며 " 캔 버 스 " 비디오 재생 에 속 합니다 .
- file:文件路径
화 면 내 비디오 재생
스크 린 루 트 디 렉 토 리에서 " test . mp 4 " 비디오를 재생 하는 경우 , 스크 린 문자 " 3: /" 입니다 , 다음과 같이 .
-- 사용자가 컨트롤 을 터 치 하여 수정 한 후 이 콜 백 함 수를 실행 합니다 .
-- 버튼 컨트롤 을 클릭 하고 텍스트 컨트롤 을 수정 하거나 슬 라이 딩 막 대를 수정 하면 이 이벤 트가 트 리 거 됩니다 .
on _ control _ no tify (sc reen , control , value) 함 수
if screen == sc _ main 2
그러면
if control == 7 and value == 0
그러면
play _ video (' 3: / test . mp 4 ', 0, 48 0, 27 2)
끝
끝
끝
-- 시스템 콜 백 기능 , SD 카드 삽 입 자동 콜 백
on _ sd _ ins ert ed (dir)
sd _ dir = dir
끝
SD 카드 비디오 재생
SD 루 트 디 렉 토 리에서 " test . mp 4 " 비디오를 재생 하는 경우 , SD 드라이브 문 자는 " 1: /" 이 지만 , 아래 와 같이 SD 카드 트 리 거 콜 백 에서 드라이브 문 자를 얻기 위해 전역 변 수를 만드는 것이 좋습니다 .
local sd _ dir = ' '
-- 사용자가 컨트롤 을 터 치 하여 수정 한 후 이 콜 백 함 수를 실행 합니다 .
-- 버튼 컨트롤 을 클릭 하고 텍스트 컨트롤 을 수정 하거나 슬 라이 딩 막 대를 수정 하면 이 이벤 트가 트 리 거 됩니다 .
on _ control _ no tify (sc reen , control , value) 함 수
if screen == sc _ main 2
그러면
if control == 2 and value == 0
그러면
play _ video (sd _ dir .. '/'.. ' test . mp 4 ', 0, 0, 48 0, 27 2)
끝
끝
끝
更多关于LUA스크립트的文件的遍历、视频控制、循环播放等,可参考《
stop _ video ()
비디오 재생 중지
on _ video _ no tify (ms g , v 1, v 2)
비디오 재생 콜 백 함 수
- msg:1-播放中,0-播放完毕
通过进度条显示播放进度、以及文本控件显示播放时长코드 예제如下所示,完整代码参考《
함 수 on _ video _ no tify (ms g , v 1, v 2)
local token _ time = ' :'
if msg == 1
그러면
local v 1 _ h = string . format ( " % 02 d ", math . mod f (v 1 / 60 / 60))
local v 1 _ m = string . format ( " % 02 d ", math . mod f ( (v 1 / 6 0) % 60))
local v 1 _ s = string . format ( " % 02 d ", math . mod f (v 1% 6 0))
local show _ v 1 = v 1 _ h .. token _ time .. v 1 _ m .. token _ time .. v 1 _ s
local v 2 _ h = string . format (" % 02 d ", math . mod f (v 2 / 60 / 60))
local v 2 _ m = string . format ( " % 02 d ", math . mod f ( (v 2 / 6 0) % 60))
local v 2 _ s = string . format (" % 02 d ", math . mod f (v 2% 6 0))
local show _ v 2 = v 2 _ h .. token _ time .. v 2 _ m .. token _ time .. v 2 _ s
set _ value (sc _ video , 26, (v 1 / v 2) * 1000)
set _ text (sc _ video , 27, show _ v 1)
set _ text (sc _ video , 28, show _ v 2)
else if msg == 0
그러면
pal y _ video _ index = pal y _ video _ index +1
if paly_video_index
그러면
pal y _ video _ index = 1
끝
local cur _ play _ page = math . mod f (p aly _ video _ index / 5)
if paly_video_index % 5
그러면
cur _ play _ page = cur _ play _ page + 1
끝
if cur _ play _ page == get _ value (sc _ video , 17)
그러면
my _ set _ video _ pla ysTate (p aly _ video _ index)
다른 것
my _ set _ video _ play state (0)
끝
play_video(video_Tb
my _ set visa ble _ video _ progress ( 1 )
끝
끝
답글 작성