嵌入式系统应用-LVGL的应用-音乐播放器

1 播放器介绍

这里采用的是有源蜂鸣器播放的音乐,采用的RTT-BeepPlayer-pkg提供音乐模板。 里面提供了四首音乐的模板。

读者可以从这篇文章获得如何移植和加载音乐播放器的——rt-thread 的软件报包-RTT-BeepPlayer-pkg

2 LVGL 绘制

添加链接描述

2.1 背景绘制

获取当前的界面,绘制界面的背景色为:绿色。

 if (main_screen == NULL)
    {
   
        // 创建窗口
        main_screen = lv_scr_act();       
        // 背景色是蓝色
         lv_obj_set_style_bg_color(main_screen,lv_palette_main(LV_PALETTE_GREEN), LV_PART_MAIN);
         lv_scr_load(main_screen);
    }

2.2 按键绘制

按键的创建时:lv_btn_create
添加对应的按键的动作:lv_obj_add_event_cb
可以为按键创建风格:style

2.2.1 图标下载

可以从阿里的开源图标下载你需要的图标:阿里图标

在这里插入图片描述

2.2.2 由于图片尺寸默认200200,利用图片工具转化成为5050

在这里插入图片描述

2.2.3 利用lvgl 在线转化工具,进行转化c文件

在线转化工具

如图进行配置
在这里插入图片描述
在这里插入图片描述

2.2.4 代码显示

 //  播放按键
    lv_obj_t* btn_play = lv_btn_create(main_screen);
    lv_obj_add_event_cb(btn_play, event_play_handler, LV_EVENT_ALL, user_data);
    lv_obj_align(btn_play, LV_ALIGN_LEFT_MID, 0, 0);
    lv_obj_set_size(btn_play, 50, 50);
 
   // 下一首按键
    lv_obj_t* btn_next= lv_btn_create(main_screen);
    lv_obj_add_event_cb(btn_next, event_next_handler, LV_EVENT_ALL, user_data);
    lv_obj_align(btn_next, LV_ALIGN_CENTER, -80, 0);
    lv_obj_set_size(btn_next, 50, 50);
  // 上一首按键
    lv_obj_t* btn_prev = lv_btn_create(main_screen);
    lv_obj_add_event_cb(btn_prev, event_prev_handler, LV_EVENT_ALL, user_data);
    lv_obj_align(btn_prev, LV_ALIGN_CENTER, 80, 0);
    lv_obj_set_size(btn_prev, 50, 50);
   // 退出按键
    lv_obj_t* btn_exit = lv_btn_create(main_screen);
    lv_obj_add_event_cb(btn_exit, event_exit_handler, LV_EVENT_ALL, user_data);
    lv_obj_align(btn_exit, LV_ALIGN_RIGHT_MID, 0, 0);
    lv_obj_set_size(btn_exit, 50, 50);
    // 风格设计
    stat
LVGL(Light and Versatile Graphics Library)是一个用于嵌入式系统的图形库,它本身并不直接提供音乐播放功能。但是,在基于LVGL开发的应用程序中集成一个音乐播放器是完全可行的。 为了创建一个LVGL驱动的音乐播放器界面,你可以按照以下步骤操作: 1. **设计UI布局**:利用LVGL提供的控件如按钮、标签、滑块等构建用户交互元素。例如,可以添加“上一首”、“下一首”、“暂停/播放”的图标按钮以及进度条来显示当前歌曲播放位置。 2. **音频处理模块的选择与整合**:选择合适的第三方库或硬件平台自带的支持MP3或其他格式解码的功能,并将其链接到你的项目里。常见的有Mad MP3 Decoder for C/C++ 或者FatFs + VS1053这样的组合方案适用于大多数微控制器系统。 3. **事件响应机制**:当用户点击了界面上的相关组件时触发相应动作,比如切换曲目、调整音量大小等等。这需要编写回调函数监听这些输入事件并调用底层API控制实际的声音输出设备。 4. **状态同步更新**:随着后台正在运行着的实际媒体流变化而动态改变前端展示内容,保持两者之间的协调一致非常重要。也就是说,如果现在正在播放某一段音频,则应该及时刷新时间戳信息;当按下停止键之后也要马上反映出这种改动。 最终结果将取决于具体的实施细节和技术选型,上述只是一个大致框架性的描述。如果你对某个特定部分感兴趣或者遇到了困难,请随时告诉我!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数贾电子科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值