使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第四十七讲)

这一期讲解的控件是视频控件,lv_video是 LVGL 库中的一个组件,用于视频的播放显示,需要外部的视频解码库(如FFmpeg)来处理视频文件。

如上图所示是在GUI_guider中视频控件的使用,右侧是该控件的属性,可以控制视频是否自动播放以及源视频文件的路径选择。

以下是函数接口的讲解:

//创建

lv_obj_t * video = lv_video_create(lv_scr_act());

//初始化

lv_video_set_src(video, "path/to/video.mp4");

//大小

lv_obj_set_size(video, width, height);

//位置

lv_obj_set_pos(video, x, y);

//播放

lv_video_start(video);

//暂停

lv_video_pause(video);

//停止

lv_video_stop(video);

//跳转到指定时间

lv_video_seek(video, time_in_ms);

//音量控制

lv_video_set_volume(video, volume); // 0-100

//循环播放

lv_video_set_loop(video, true); // 或 false

//以下是事件回调的使用

static void video_event_cb(lv_event_t * e) {

lv_event_code_t code = lv_event_get_code(e);

lv_obj_t * obj = lv_event_get_target(e);

复制代码
if (code == LV_EVENT_PLAYBACK_FINISHED) {
    // 视频播放结束
}

}

lv_obj_add_event_cb(video, video_event_cb, LV_EVENT_ALL, NULL);

注:视频播放可能对系统资源消耗较大,确保硬件支持。确保使用的视频格式与解码库兼容。

以下是lvgl官方文档提供的FFmpeg:

./configure --disable-all --disable-autodetect --disable-podpages --disable-asm --enable-avcodec --enable-avformat --enable-decoders --enable-encoders --enable-demuxers --enable-parsers --enable-protocol='file' --enable-swscale --enable-zlib

make

sudo make install

注意:

FFmpeg 扩展不使用 LVGL 的文件系统。您可以只需像往常一样在操作中传递图像或视频的路径即可系统或平台。

本文章由威三学社出品

对课程感兴趣可以私信联系

相关推荐
早点睡啊Y2 小时前
深入学LangChain官方文档(二十二):Frontend 高级形态——Headless Tools、Time Travel 与 Generative UI
ui·langchain·状态模式
<小智>18 小时前
鸿蒙多功能工具箱开发实战(二十)-性能优化与打包发布
ui·华为·harmonyos
薛定谔的猫-菜鸟程序员1 天前
一个 Skill 如何让大模型拥有专业 UI 能力?——ui-ux-pro-max 架构深度拆解与 Skill 设计方法论
人工智能·ui
<小智>2 天前
鸿蒙多功能工具箱开发实战(十二)-二十四节气与黄历数据展示
ui·华为·harmonyos
qizayaoshuap2 天前
# [特殊字符] 手电筒 — 鸿蒙ArkTS设备功能调用与UI交互设计
ui·华为·交互·harmonyos
cll_8692418912 天前
一个好看的Wordpress博客文字css样式
前端·css·ui
johnny2332 天前
UI新革命?GenUI、WanDB-OpenUI、thesysdev-OpenUI、A2UI、AG-UI、MCP-UI
ui
天天进步20152 天前
UI-TARS 源码解析 #10:parse_action 源码解析:如何用 AST 安全解析模型生成的函数调用?
安全·ui
FuckPatience3 天前
Telerik UI for WPF 值不能为null。参数名:key
ui·wpf
breeze jiang3 天前
从原生事件到 React 组件化:用状态驱动模型加载进度 UI
前端·react.js·ui