新闻详情

新闻详情

首页 / 资讯中心 / 详情

bullet-screen-cj入门实战:几行代码实现弹幕发送、暂停与显示控制

发布时间:2026/9/24 23:36:35来源:尧图网络
bullet-screen-cj入门实战:几行代码实现弹幕发送、暂停与显示控制
bullet-screen-cj入门实战几行代码实现弹幕发送、暂停与显示控制【免费下载链接】bullet-screen-cj弹幕发送、解析与绘制库项目地址: https://gitcode.com/Cangjie-TPC/bullet-screen-cjbullet-screen-cj 是一款基于仓颉语言的开源弹幕库支持纯文本弹幕发送、图文混排与 GIF 动图弹幕绘制并提供暂停/继续、隐藏/显示、播放进度跳转等完整的播放状态控制。本文带你用不到 5 分钟跑起第一条弹幕再用几行代码完成弹幕的暂停与显隐控制适合刚接触 HarmonyOS 弹幕开发的初学者。一、30 秒认识弹幕库 bullet-screen-cj bullet-screen-cj 把发送 → 解析 → 绘制三个环节拆成了几组职责清晰的类新手只要认识下面四块就够了组件角色DanmakuView弹幕显示组件一行代码嵌入你的 UIDanmakuViewModel播放控制器负责发送、暂停、继续、显隐DanmakuContext配置中心控制字体、描边、速度、显示区域BaseDanmakuParser数据源解析器内置 JSON 弹幕格式内置特性包括左右滚动、顶部/底部固定、特殊弹幕、图文混排、GIF 动图弹幕、显示区域大小设置等。完整示例代码见 entry/src/main/cangjie/src/my_view.cj运行后能看到滚动弹幕与控制按钮组成的完整界面。上图是示例应用的启动背景图配合滚动弹幕一起看氛围感一下就上来了。二、弹幕库接入项目最快方法只改 2 个配置文件以拷贝模块方式接入为例步骤非常短克隆项目并把danmaku目录拷贝到你的工程根目录git clone https://gitcode.com/Cangjie-TPC/bullet-screen-cj在 entry/oh-package.json5 的dependencies中加一行danmaku: file:../danmaku在 entry/src/main/cangjie/cjpm.toml 中添加仓颉依赖[dependencies] danmaku {path ../../../../danmaku/src/main/cangjie, version 1.0.0}代码里一行导入import danmaku.*库的包声明为package danmaku入口文件见 danmaku/src/main/cangjie/src/package.cj。三、5 步跑起来第一条弹幕第 1 步创建控制器与显示区域var model DanmakuViewModel() var context DanmakuContext.create() model.setWidth(720.0) model.setHeight(720.0)第 2 步配置显示效果全部可选不设也有默认值context.setDanmakuStyle(DANMAKU_STYLE_STROKEN, 3.0) // 描边样式 context.setScrollSpeedFactor(1.2) // 滚动速度系数 context.setScaleTextSize(1.2) // 字体大小系数 context.setMaximumLines(linesPair) // 最大显示行数 context.preventOverlapping(overlapPair) // 防重叠开关第 3 步绑定解析器准备就绪var parser BaseDanmakuParser.getDefaultJsonDanmakuParser() parser.load(yourDataSource) model.setCallback(callback) // 在 prepared 回调里调用 model.start() model.prepare(parser, context)第 4 步把弹幕组件加进页面DanmakuView(model: this.model)第 5 步发送第一条弹幕var d context.mDanmakuFactory.createDanmaku(BaseDanmaku.TYPE_SCROLL_RL).getOrThrow() d.text 你好 仓颉! d.textColor 0xffff0000 d.setTime(model.getCurrentTime() 1200) model.addDanmaku(d)弹幕类型以常量形式定义在 danmaku/src/main/cangjie/src/model_base_danmaku.cj常量含义TYPE_SCROLL_RL从右到左滚动弹幕TYPE_SCROLL_LR从左到右滚动弹幕TYPE_FIX_TOP顶部固定弹幕TYPE_FIX_BOTTOM底部固定弹幕TYPE_SPECIAL特殊弹幕四、一行代码控制弹幕暂停、继续、隐藏与显示拿到model之后常用操作都是一行一个方法需求调用开始播放model.start()暂停播放model.pause()继续播放model.resume()暂停/继续切换model.toggle()隐藏弹幕model.hide()显示弹幕model.show()跳转到指定时间点model.seekTo(ms)清屏清除已播放弹幕model.clearDanmakusOnScreen()停止并释放资源model.stop()/model.release()示例应用正是一个按钮对应一个方法的做法点pause直接model.pause()点resume直接model.resume()做播放/暂停开关的交互时几乎零成本。五、进阶玩法图文混排与 GIF 动图弹幕 图文混排把缓存填充器换成SpannedCacheStuffer再给弹幕对象设置image即可context.setCacheStuffer(SpannedCacheStuffer(), cacheStufferAdapter: adapter) d.image ImgObj(resource://RAWFILE/startIcon.png, 33.0, 33.0) d.text 仓颉你好..GIF 动图弹幕把 GIF 拆成帧序列后挂到弹幕上设置动图模式d.setPixelMapList(frames) // PixelMap 帧列表 d.setIsAnimation(true)下面这张就是示例中GIF按钮所使用的动图素材RRR.gif发送后会以小巴士造型一路开过屏幕六、API 速查与延伸阅读 完整接口文档doc/feature_api.md示例应用入口页数据源切换entry/src/main/cangjie/src/index.cj示例弹幕页发送、暂停、GIF、图文混排entry/src/main/cangjie/src/my_view.cj自定义 JSON 解析器实现entry/src/main/cangjie/src/danma_parser.cj项目说明与源码目录结构README.md版本环境在 DevEco Studio 5.0.13.200 Cangjie Compiler 0.53.20 下验证通过。最后小结DanmakuContext管效果、model.prepare()管准备、addDanmaku()管发送pause()/resume()/show()/hide()管控制——几行代码就能让你的应用拥有丝滑的弹幕互动效果。【免费下载链接】bullet-screen-cj弹幕发送、解析与绘制库项目地址: https://gitcode.com/Cangjie-TPC/bullet-screen-cj创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

汽车电子底层软件开发:AUTOSAR与CAN总线实战解析 2026/9/24 23:59:54

汽车电子底层软件开发:AUTOSAR与CAN总线实战解析

1. 这门“汽车电子底层软件开发就业课”到底在教什么?——不是写个LED闪烁就能上岗的很多人看到“汽车电子底层软件开发就业课”这个标题,第一反应是:不就是嵌入式C语言单片机CAN通信?刷几道LeetCode、调通一个STM32 CAN收发例程&…

阅读更多 →
Vim基础操作全攻略:保存退出、模式切换与高频命令实战 2026/9/24 23:59:54

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

阅读更多 →
Python+CNN车牌识别实战:从数据预处理到模型训练与部署 2026/9/24 23:59:54

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

阅读更多 →
AI元人文:从工具使用到思维重构的深度探索 2026/9/24 23:59:54

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

阅读更多 →
《AI Agent 场景应用 - MobileOpenClaw》第5-9节:会话上下文细化处理实战指南 2026/9/24 23:59:47

《AI Agent 场景应用 - MobileOpenClaw》第5-9节:会话上下文细化处理实战指南

文档教程后端 【免费下载链接】CodeGuide :books: 本代码库是作者小傅哥多年从事一线互联网 Java 开发的学习历程技术汇总,旨在为大家提供一个清晰详细的学习教程,侧重点更倾向编写Java核心内容。如果本仓库能为您提供帮助,请给予支持(关注、…

阅读更多 →
写出来的,和没写的——七个模块,一副骨头 2026/9/24 23:59:47

写出来的,和没写的——七个模块,一副骨头

「合金日记」第 85 篇 「小艾说」第 34 期 幕后弧(换弧开篇) 从「写谁」转向「怎么写」 专栏连载中 前篇:《听漏了,还是听深了——一个 a,一句禅》 模块 骨架 沉默 对位 骨头 没看过前篇也能读 没看过前八十…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞