如何5分钟集成lyric-view-cj:HarmonyOS自定义歌词组件快速上手教程
如何5分钟集成lyric-view-cjHarmonyOS自定义歌词组件快速上手教程【免费下载链接】lyric-view-cj音乐播放器自动滚动歌词组UI件项目地址: https://gitcode.com/Cangjie-TPC/lyric-view-cjlyric-view-cj 是一个基于仓颩语言开源的 HarmonyOS 自定义歌词组件可关联音乐播放器实现歌词随播放进度自动滚动、高亮、双语 LRC 解析与拖动歌词快进。本教程带你走通完整集成流程克隆仓库 → 拷贝模块 → 配置依赖 → 渲染出第一行会滚动的歌词零基础也能照着做完。适用对象需要歌词展示能力的 HarmonyOS 应用音乐播放器、K歌 App 等环境要求DevEco Studio 5.1.1 Release5.1.1.851SdkVersion 19 及以上一、lyric-view-cj 歌词组件能做什么一句话总结给你的应用装上一块“KTV 同款”自动滚动歌词屏。LRC 解析从文件或文本解析双语歌词支持[ti:][ar:][al:][offset:]等标签自动滚动歌词跟随播放进度自动滚动当前行高亮放大拖动快进手指按住歌词即可预览时间、点按跳转样式自定义字号、颜色、行距、高亮缩放/加粗、居中/居左随心配空态兜底无歌词时可自定义居中提示文案如“暂无歌词”完整的类与函数接口说明见项目 API 文档 doc/feature_api.md。二、第一步一条命令克隆 HarmonyOS 歌词组件仓库git clone https://gitcode.com/Cangjie-TPC/lyric-view-cj项目结构很简洁你只需要关注三个部分├─ doc # API文档和使用手册 ├─ entry # 示例代码跟着它学用法最快 └─ lyricview # 歌词组件源码真正要用的就是它示例应用的全局图标资源放在AppScope/resources/base/media/下由前景层与背景层合成三、第二步拷贝 lyricview 模块并配置 cjpm.toml 依赖项目支持两种引入方式新手推荐第一种按模块引入直接把 lyricview/ 整个目录拷贝到你的应用工程根目录下与你的主模块entry平级按三方库引入把仓库作为 git submodule 挂到工程里适合多项目统一管理cd $你的工程根目录 mkdir third-party cd third-party git submodule add https://gitcode.com/Cangjie-TPC/lyric-view-cj无论哪种方式最后都要打开应用模块下的cjpm.toml给lyricview声明一个路径依赖。工程自带的示例配置可直接参考 entry/cjpm.toml[dependencies] [dependencies.lyricview] path ../lyricview四、第三步渲染出第一行自动滚动的歌词整个组件只需要理解三个对象分工非常清晰对象职责源码位置LyricParser把 LRC 文本解析成Lyric数据结构lyric_parser.cjLyricController歌词与样式的“遥控器”设歌词、滚动、配色lyric_controller.cjLyricView歌词展示组件本体放进布局即可lyric_view.cj在页面里按下面四步写官方示例页 lyric_view_test_case.cj 就是同一套路import lyricview.bean.* import lyricview.parse.* import lyricview.view.* // 1. 创建控制器链式配置歌词样式 var controller LyricController() .setTextSize(18.0) .setTextColor(Color(0x7cffffff)) .setHighlightColor(Color(0xffffffff)) .setAlignMode(AlignMode.Center) .setEmptyHint(当前没有歌词) // 2. 解析 LRC 歌词并装载 var lyric LyricParser().parse(lrcText) controller.setLyric(lyric) // 3. 把 LyricView 放入布局 LyricView(controller: controller, enableSeek: true) // 4. 播放进度每变化一次就调用它驱动滚动 controller.updatePosition(mediaPosition)完成从此播放进度变化 → 歌词自动滚动当前行高亮 按住歌词拖动 → 显示时间预览松手点按跳转没有歌词 → 屏幕中央显示“当前没有歌词”五、LyricController 快速自定义表常用样式 API 一览所有样式接口都支持链式调用建议在页面aboutToAppear中一次性配好想做什么调用方法改字号 / 行间距setTextSize(18.0)/setLineSpace(18.0)改普通颜色 / 高亮颜色setTextColor(...)/setHighlightColor(...)高亮行放大 加粗setHighlightScale(1.3)/setHighlightBold(true)居中 / 居左显示setAlignMode(AlignMode.Center)/AlignMode.Left无歌词时的提示语setEmptyHint(暂无歌词)屏幕外预绘制缓存行数滑动更流畅setCacheSize(4)滚动动效时长毫秒默认 300setAnimationDuration(300)需要拖动快进界面配色时在构造LyricView时传seekUIColor、seekLineColor、seekUIStyle即可。六、常见问题集成 HarmonyOS 歌词组件最容易踩的 4 个坑Q1歌词不自动滚动大概率是漏调updatePosition(mediaPosition)。请在播放器进度变化时Slider 的onChange或播放器时间回调里把当前播放位置毫秒传进控制器。Q2怎么显示双语歌词调用parse(mainLyric, secondLyric)把主、副语言歌词分别作为两个字符串数组传入组件会按行两行渲染。Q3想禁用拖动快进构造LyricView时设置enableSeek: false即可。Q4开发环境版本不满足项目已在 DevEco Studio 5.1.1 Release、SdkVersion 19 及以上版本验证通过详见 README.md 的“约束与限制”。七、下一步照着示例把所有功能玩一遍全功能演示页entry/src/main/cangjie/pages/lyric_view_test_case.cj播放、换色、改字号、清空模拟歌词数据entry/src/main/cangjie/pages/mock_data.cj版本发布记录CHANGELOG.md数据结构Lyric/LyricLine详解lyricview/src/main/cangjie/bean/项目基于 Apache License 开源放心使用。跟着上面三步走5 分钟后你的 HarmonyOS 应用就拥有了自动滚动的高亮歌词屏【免费下载链接】lyric-view-cj音乐播放器自动滚动歌词组UI件项目地址: https://gitcode.com/Cangjie-TPC/lyric-view-cj创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

外贸独立站没询盘,往往不是页面问题,而是流程问题

外贸独立站没询盘,往往不是页面问题,而是流程问题

很多外贸人做独立站时,最容易把注意力放在页面上。首页要不要重做? 产品图是不是不够精致? 模板是不是太普通? 导航是不是要换一种布局?这些当然重要,但如果一个外贸独立站长期没有询盘,问题通常…

2026/9/24 16:50:00 阅读更多 →
IronClaw Coder 子代理方向规范:有界编码任务的执行协议与源码实现解析

IronClaw Coder 子代理方向规范:有界编码任务的执行协议与源码实现解析

人工智能AI 应用交互助手AI Agent 【免费下载链接】ironclaw IronClaw is an Agent OS focused on privacy, security and extensibility 项目地址: https://gitcode.com/gh_mirrors/iro/ironclaw 点击查看 免费下载 本技术指南聚焦 IronClaw 开源 Agent OS 中 iro…

2026/9/24 16:50:00 阅读更多 →
Kornia LoFTR 实战指南:免检测器的 Transformer 特征匹配与几何估计

Kornia LoFTR 实战指南:免检测器的 Transformer 特征匹配与几何估计

计算机视觉人工智能深度学习图像处理 【免费下载链接】kornia 🐍 Geometric Computer Vision Library for Spatial AI 项目地址: https://gitcode.com/gh_mirrors/ko/kornia 点击查看 免费下载 LoFTR 是 Kornia 提供的一套免检测器(detector…

2026/9/24 16:49:00 阅读更多 →

最新新闻

告别System.out.println!IDEA 2026.2日志点无痛调试保姆级教程

告别System.out.println!IDEA 2026.2日志点无痛调试保姆级教程

写代码的谁没干过这事?程序出Bug了,疯狂往代码里塞System.out.println,打完日志、定位完问题,又得一个个删掉。 最崩溃的是:改一行代码,重启服务、重部署、重测一遍,来回折腾半小时,…

2026/9/24 17:29:34 阅读更多 →
基于Django的农业害虫识别系统Python-附源码

基于Django的农业害虫识别系统Python-附源码

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/9/24 17:29:34 阅读更多 →
OpenCV计算机视觉开发入门与实践<四十三>:开发车牌识别系统

OpenCV计算机视觉开发入门与实践<四十三>:开发车牌识别系统

摘要:本文介绍基于机器视觉技术的车牌识别系统,涵盖车牌定位、字符分割与字符识别三大关键技术。文章首先概述车牌识别技术背景,随后给出系统开发思路,重点讲解基于边缘检测的车牌定位方法,并附上完整的 C++ 程序实现,包括图像二值化、车牌定位、字符分割与字符识别四个核…

2026/9/24 17:29:34 阅读更多 →
CMO环境模型-地形模型详解

CMO环境模型-地形模型详解

6.2 地形模型(Terrain) Terrain.cs 共 386 行,负责高程查询、视线(LOS)判定与地形坡度计算。全球最大地形高程常量 GlobalMaxTerrainElevation 8 850 m(珠峰高度)。 高程查询接口为 GetElevat…

2026/9/24 17:29:34 阅读更多 →
Spring 引入外部属性配置文件详解

Spring 引入外部属性配置文件详解

Spring 引入外部属性配置文件详解 一、为什么需要外部属性文件? 在实际项目中,数据库连接、第三方 API 密钥、服务器地址等配置通常不应该硬编码在 XML 或 Java 代码中。原因有三: 环境差异:开发、测试、生产环境的数据库地址不同…

2026/9/24 17:29:34 阅读更多 →
AI助学系统案例复盘:从视频字幕问答到课程上下文 AI 助手的设计与落地

AI助学系统案例复盘:从视频字幕问答到课程上下文 AI 助手的设计与落地

AI助学系统案例复盘:从视频字幕问答到课程上下文 AI 助手的设计与落地 项目定位: 面向在线视频课程自主学习场景,探索如何利用大语言模型能力降低学习过程中的上下文准备成本,构建一个能够理解课程背景、结合视频内容和学习过程进…

2026/9/24 17:28:33 阅读更多 →

日新闻

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/24 0:00:19 阅读更多 →
单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:19 阅读更多 →
C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/24 0:00:19 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →