《LVGL视频播放界面实现方法》这篇博客,用了这个方法有个问题,就是字幕显示在上层的时候,会有字体渲染问题,字符底下会有黑色小块。这个要怎么解决?
播放视频用的不是lvgl库提供的方法,用的ffmpeg播放的视频,只有显示的文本字幕才用了lvgl。
LVGL视频上层显示文本出现文本渲染bug
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
5条回答 默认 最新
- 还有头发的程序员- 2023-05-30 17:37关注
获得0.75元问题酬金 /* 初始化屏幕风格 */ static lv_style_t style_scr_act; if (style_scr_act.prop_cnt == 0) { lv_style_init(&style_scr_act); /* 默认不是透明的,后面按需要切换即可 */ lv_style_set_bg_opa(&style_scr_act, LV_OPA_COVER); /* 一定要应用风格,不然也是没有效果的 */ lv_obj_add_style(lv_scr_act(), &style_scr_act, 0); } /* 这里根据按钮状态,切换不同风格,一种是UI能够透明看到底下的视频,一种是UI覆盖视频,视频就看不到了 */ if (lv_obj_has_state(btn, LV_STATE_CHECKED)) { /* 这里切换为UI透明 */ lv_label_set_text(label, "Stop"); /* 这里设置屏幕是透明的 */ lv_disp_get_default()->driver->screen_transp = 1; /* 这里设置屏幕背景是透明的 */ lv_disp_set_bg_opa(lv_disp_get_default(), LV_OPA_TRANSP); /* 这里清空屏幕,不清空的话,可能不会生效 */ lv_memset_00(lv_disp_get_default()->driver->draw_buf->buf_act, lv_disp_get_default()->driver->draw_buf->size * sizeof(lv_color32_t)); /* 这里屏幕风格切换为透明的 */ lv_style_set_bg_opa(&style_scr_act, LV_OPA_TRANSP); /* 通知风格变化,需要更新 */ lv_obj_report_style_change(&style_scr_act); } else { /* 这里切换为UI不透明,也就是覆盖视频 */ lv_label_set_text(label, "Play"); /* 这里设置屏幕是不透明的 */ lv_disp_get_default()->driver->screen_transp = 0; /* 这里设置屏幕背景是不透明的 */ lv_disp_set_bg_opa(lv_disp_get_default(), LV_OPA_COVER); /* 这里屏幕风格切换为不透明的 */ lv_style_set_bg_opa(&style_scr_act, LV_OPA_COVER); /* 通知风格变化,需要更新 */ lv_obj_report_style_change(&style_scr_act); }
解决 无用评论 打赏 举报
悬赏问题
- ¥20 如何让程序ab.eXe自已删除干净硬盘里的本文件自己的ab.eXe文件
- ¥50 爬虫预算充足,跪巨佬
- ¥15 滑块验证码拖动问题悬赏
- ¥15 Wanted but not invoked:Actually, there were zero interactions with this moc
- ¥20 怎么驱动tb6612
- ¥15 Arcgis 3D效果点要素
- ¥15 在执行yolo训练脚本的时候,没有报错,在扫描val这一步后就推出执行了
- ¥15 delphi开发的WEBSERVER改用HTTPS协议
- ¥15 pic16f877A单片机的计数器proteus仿真失效
- ¥100 调查 Vitis AI 中验证 .xmodel 量化后的正确性