跳到主要内容

LVGL 从零实现多媒体播放器

本章节将讲解如何在 T113s4-SdNand 开发板上基于 LVGL + TPlayer 实现一个多媒体播放器。


前置条件

硬件:

  • T113s4-SdNand 开发板
  • 百问网 7 寸 RGB 屏幕(或其他兼容屏幕)
  • 3.5mm 耳机或功放扬声器套件
  • 12V 锂电池或 12V 电源适配器
  • SD 卡(预存 MP4 视频文件)

软件:

  • 已完成 Tina5 SDK 开发环境搭建
  • 已完成 Tina5 SDK 编译打包烧录

源码:


实现原理

基于 LVGL + TPlayer 库实现:

  • TPlayer:全志 Tina SDK 内置的多媒体播放库,负责解码和播放 SD 卡内的 MP4 文件
  • LVGL:负责 UI 交互,图层位于 TPlayer 图层之上,并将中心区域设置为透明窗口,用于显示 TPlayer 播放内容
┌─────────────────────────────────┐
│ LVGL UI 图层 │
│ (透明窗口区域显示 TPlayer 视频) │
├─────────────────────────────────┤
│ TPlayer 视频图层 │
└─────────────────────────────────┘

编译项目

1. 克隆源码

git clone https://github.com/DongshanPI/100ASK_T113s3-SdNand_TinaSDK5/ -b pj-100ask_cat_tv
cd 100ASK_T113s3-SdNand_TinaSDK5

2. 配置 Makefile

编辑项目内置的 Makefile,修改以下内容:

  • TINA_SDK_ROOT:设置为你的 Tina5 SDK 路径
  • 交叉编译器路径:设置为 Tina5 SDK 编译输出的工具链路径

注意:必须先编译过 Tina5 SDK 系统镜像,才可以继续后续操作。

3. 编译

在项目根目录下执行:

make -j32

编译成功后会生成 cattv 可执行程序。


运行测试

1. 准备 SD 卡

SD 卡预存一些 MP4 文件,目录结构如下:

SD 卡根目录/
├── tom&jerry/
│ ├── 001.mp4
│ └── 999.mp4
├── xiyangyang/
│ ├── 001.mp4
│ └── 999.mp4
└── ...

将 SD 卡插入开发板。

2. 设置音频属性

amixer -D hw:audiocodec cset numid=39 1
amixer -D hw:audiocodec cset numid=38 1

3. 上传程序到开发板

adb push cattv /mnt/UDISK

4. 运行测试

在开发板串口终端中执行:

cd /mnt/UDISK
chmod +x cattv
./cattv

开机自启

修改 /etc/profile 文件,在文件尾部添加:

amixer -D hw:audiocodec cset numid=39 1
amixer -D hw:audiocodec cset numid=38 1

cd /mnt/UDISK
chmod +x cattv
./cattv > /dev/null &
cd /

保存后重启开发板,播放器将自动启动。