什么是视频控件?

我司视频AV控件有两种功能,分别为播放视频文件以及AV入力。视频控件播放视频功能常用于开机创意效果,或者播放产品的操作ガイド、公共场合的广告示意等
本章节主要介绍以下3点
- 播放屏内的视频
- 播放SD卡的视频
- LUA API介绍
适用範囲:M系列
视频格式:
- MP4文件
- H264编码
- 音频流为MP3或AACformat
- 视频最大分辨率<1280*768
- 最大フレーム数<30ps
- 最大码率<1400
相关例程下载链接:
视频的转换操作流程可参照此チュートリアル:视频文件转换説明
18.1 视频控件属性介绍
视频控件属性介绍,如下图所示

用途
播放视频以及AV入力,AV入力需要应用的硬件型号サポート
视频文件
加载到控件的视频命名为字母(a-z)、数字(0-9)和下划线(_)组合,サポートなし。其他文字
音频流
有効和禁止,禁止后播放视频ない声音
自动播放
“是”或“否”,当選択是,切换到该ページ就自动播放视频文件
播放结束时
视频播放结束时,执行的动作。可以選択”不処理“、“送信通知”以及“切换到次へ”

重复次数
重复播放的次数,0表示不断重复
18.2 播放屏内视频文件
【播放屏内视频文件】画面,介绍相关播放指令
画面設定
在【播放屏内视频文件】画面的“背景图片”导入相应的美工图片画面中追加1个视频控件(controlID:1)和3个按钮控件用于設定视频播放ステータス,如下所示

属性設定
视频AVcontrol
設定视频控件用途为“播放视频”,追加视频文件,“音频流”为有効,“自动播放”为是,“播放结束时”为送信通知,“重复次数”为0,如下所示

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

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

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

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

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

위에서 설명 한 것처럼 : 명령 형 식은 EE B 1 71 00 00 00 01 FF FC FF 입니다 .이 명령 은 주로 비디오 의 " 정 지 " 를 제어 하는 데 사용됩니다 .명령 의 의미는 다음과 같다 .
| フレーム头 | 组态指令 | function code-视频停止 | 画面ID | controlID | フレーム尾 |
|---|
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 .이 명령 은 주로 비디오 의 " 정 지 " 를 제어 하는 데 사용됩니다 .명령 의 의미는 다음과 같다 .
| フレーム头 | 组态指令 | function code-設定视频播放路径 | 画面ID | controlID | 路径(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 )
끝
끝
Leave a Reply