嵌入式视频播放:MP4(H.264 + MP3/AAC),在指定屏幕区域播放。适合操作引导、产品演示、开机动画。
1. 视频格式要求
| 项目 | 要求 |
|---|---|
| 格式 | MP4(.mp4) |
| 视频编码 | H.264 |
| 音频编码 | MP3 或 AAC |
| 最大分辨率 | 1280×768(超过会卡顿或无法播放) |
| 最大帧率 | 30 fps |
| 最大码率 | 1400 kbps |

2. API
| 函数 | 说明 |
|---|---|
| play_video(file, left, top, width, height) | 在指定区域播放视频(绝对路径) |
| pause_video() | 暂停 |
| resume_video() | 从暂停位置继续 |
| stop_video() | 停止并释放解码资源、清除画面 |
| on_video_notify(msg, v1, v2) | 播放状态回调 |
3. 播放器控件地址表
| Address | 用途 |
|---|---|
| LW1001 | 上一首/下一首(LW1005=0 不允许点击) |
| LW1002 | 0-暂停 / 1-继续播放 |
| LW1003 / LW1004 | 当前页 / 总页数 |
| LW1005 | 1-SD 根目录有视频 |
| LW1100~LW1200 | 视频名称(128 字节) |
| LW1240 / LW1250 | 播放当前时间 / 总时间 |
| LW1006 | 播放进度条 |
4. 案例:受控播放 + 进度条
function on_update(slave, vtype, addr)
if vtype == VT_LW then
if addr == 0x1002 then
local sw = get_uint16(VT_LW, 0x1002)
if sw == 1 then
play_video("1:/video/demo.mp4", 0, 0, 800, 480)
else
pause_video()
end
end
end
end
function on_video_notify(msg, v1, v2)
-- msg: 播放状态(如 2=结束), v1/v2: 进度/总时长
if msg == 2 then
stop_video()
set_uint16(VT_LW, 0x1002, 0) -- 复位播放键
end
end
视频编码是播放成败的关键:转码工具建议用 Freemake Video Converter,输出 H.264 + MP3/AAC、分辨率 ≤1280×768、码率 ≤1400kbps——格式不对不是黑屏就是卡顿。
整理自 广州大彩科技 VisualHMI 开发文档(hmi-doc.gz-dc.com)LUA 教程「视频播放」,版权归大彩科技所有。
发表回复