更新记录
1.0.0(2026-10-21)
1.0.0(2026-10-20)
- 修复 Android 首次属性分发被新旧值相等判断跳过,导致视频停留在“准备中”和黑屏。
- 移除前台播放器不需要的网络唤醒锁,修复宿主未声明 WAKE_LOCK 权限时开始播放崩溃。
- 修复 iOS 首次字符串属性同步被跳过,保留布尔属性的安全桥接处理。
- iOS 关闭预加载时停止安排相邻预加载;循环跳转完成后的状态检查与恢复播放统一回到主线程。
- 修复双端
autoplay=false时显式调用play()仍然暂停的问题。 - 补充前后台接入、iOS 音频与网络限制、已验证范围和发布前检查说明。
- 独立发布为
bz-smoooth-video,统一组件名称、Android 命名空间和缓存目录。 - 保留 Android / iOS 三播放器池、相邻预加载、封面与首帧显示。
- 支持播放、暂停、进度跳转、倍速、静音与显示模式切换。
- 提供单视频与上下滑动列表示例,不依赖业务接口、登录或第三方 UI 组件。
平台兼容性
uni-app(5.0)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| √ | √ | × | × | √ | √ | 8.1 | 12 | × |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | × | × | × | × | × | × | × |
BZ畅播 发布工程
本目录是经典 uni-app Vue 3 的独立示例工程,包含 Android / iOS 原生视频组件和插件发布材料。市场名称为 BZ畅播uniapp原生短视频播放器仿抖音预加载,插件 ID 为 bz-smoooth-video(3 个 o),版本为 1.0.0。示例不依赖登录、业务接口或第三方 UI 组件。
目录
示例工程/
README.md 本说明
App.vue 示例前后台通知与安卓导航栏隐藏
main.js Vue 3 入口
index.html Vue 3 工程入口模板
manifest.json 示例 App 配置
pages.json 示例路由
common/demo.js 演示 URL 与事件读取工具
pages/basic/index.nvue 单视频和常用控制
pages/feed/index.nvue 上下滑动及相邻预加载
scripts/check-release.cjs 本地发布检查
scripts/package-release.ps1 检查、打包与压缩包校验
uni_modules/bz-smoooth-video/ 真正要上传的插件目录
package.json 市场信息、兼容性与隐私权限声明
readme.md 用户接入、完整属性 / 方法 / 事件
changelog.md 版本记录
utssdk/app-android/ UTS 入口、Kotlin、Media3 配置
utssdk/app-ios/ UTS 入口、Swift、系统框架配置
先运行示例
- 使用 HBuilderX 4.71+,将包含本 README 和
manifest.json的文件夹导入为项目。 - 打开
manifest.json,填写自己的 DCloud AppID;如果已有测试 AppID,其他开发者导入后应替换,并配置自己的包名、签名和打包信息。发布用的示例压缩包会清空 AppID。 - 检查
common/demo.js中的 10 个演示视频和对应封面是否能在测试设备访问;不能访问时换成自己的 HTTPS MP4 和封面。示例条目使用不同的 id、视频 URL 和封面 URL。 - 通过 HBuilderX 制作 App 自定义调试基座。打包完成后,在“运行 → 运行到手机或模拟器 → 运行到 Android App 基座”的设备选择窗口中选择“自定义基座 → 本地基座”,由 HBuilderX 安装并运行;iOS 同样需要选择自定义基座。仅生成 APK 不会自动切换运行基座。原生依赖有变化时重新制作基座。
- 首屏是基础播放,点击“上下滑动示例”进入列表。Web / 小程序运行不能验证此原生组件。
示例通过原生组件标签自动识别,无需 npm 安装或手工 import 平台源码。Android 最低 API 24,iOS 最低 12.0。
示例 manifest.json 的 app-plus.safearea.bottom.offset 已设为 none,关闭底部安全区自动占位;app-plus.statusbar.immersed 设为 true,启用沉浸式窗口。App.vue 在应用启动及恢复前台时,对 Android 调用 plus.navigator.hideSystemNavigation(),隐藏底部系统导航栏,方便录屏。修改原生配置后,重新制作并安装自定义基座或正式安装包验证。系统手势、键盘或系统弹窗可能再次唤出导航栏。配置与 API 说明见 manifest 官方说明 和 hideSystemNavigation。
接入自己的 uni-app 项目
- 只复制
uni_modules/bz-smoooth-video到目标项目的uni_modules,或发布后从插件市场导入。 - 新建
.nvue页面,在pages.json注册,使用<bz-smoooth-video>并指定宽高与:active="true"。 - 需要完整示例时,复制本工程的
pages/basic/pages/feed和common/demo.js,追加路由。已有项目如果采用示例的前后台通知方式,将App.vue中的两次uni.$emit合并到现有生命周期,不要覆盖原 App.vue。隐藏安卓系统导航栏是示例录屏设置,可按需合并启动、恢复前台时的调用及沉浸式窗口配置。 - 制作包含新插件的自定义基座再运行。
详细接入示例、属性、方法、事件和注意事项见 插件使用说明。
录屏演示素材
common/demo.js 已配置 10 组 720×1280 竖屏 H.264 MP4 和各自对应的 JPEG 封面,单条约 10~22 秒。基础页使用第一条,列表页自动展示全部 10 条,适合录制上下滑动、回滑和相邻预加载效果。这批素材均无音轨;静音开关和音量功能需另用带音轨的视频验证。
素材来自 Mixkit,各详情页标注 Mixkit Stock Video Free License。项目使用远程资源链接,不附带素材文件。
| 序号 | 内容与来源 | 参考时长 |
|---|---|---|
| 1 | 海岸航拍 | 19 秒 |
| 2 | 山间瀑布 | 15 秒 |
| 3 | 仰望林间蓝天 | 11 秒 |
| 4 | 崖边飞鸟 | 10 秒 |
| 5 | 蓝天下的绿叶 | 22 秒 |
| 6 | 池塘树影 | 20 秒 |
| 7 | 海浪轻拍礁岸 | 22 秒 |
| 8 | 蓝天流云 | 12 秒 |
| 9 | 雨林小红蛙 | 13 秒 |
| 10 | 水滴与涟漪 | 11 秒 |
2026-10-21 已从当前电脑完整获取 10 个 MP4 和 10 个 JPEG:均返回 HTTP 200,文件类型正常;视频编码与尺寸为 H.264、720×1280,封面通过 JPEG 完整性检查;10 个视频均支持 HTTP 206 Range 分段读取。此检查不替代目标手机网络与原生播放器实测,公网链接也不保证长期可用。
发布到 DCloud 插件市场
- 先完成下面的真机验证。
- 登录自己的 DCloud 开发者账号。在 HBuilderX 中右键
uni_modules/bz-smoooth-video/package.json,选择“发布到插件市场”。 -
分类使用 uts插件 → uni-app兼容模式组件,清单已设置
dcloudext.type = component-uts。发布标识为bz-smoooth-video;市场是否已占用此 ID,以发布窗口校验为准。市场显示名称使用 BZ畅播uniapp原生短视频播放器仿抖音预加载;5 个标签使用 短视频、视频播放器、仿抖音、预加载、nvue。名称、简介和说明已覆盖 uni-app、UTS、上下滑动视频流等相关用语。实际收录与搜索排序以市场为准,发布后可用这些词检查检索结果。
- 填写真实作者联系方式,上传实际运行截图,选择免费 / 付费策略和授权协议。当前未预设价格或擅自指定开源许可证;如选择开源,请在插件目录补充对应
license.md并确认第三方许可要求。 - 核对兼容性:本次面向经典 uni-app Vue 3 App nvue、Android 7.0+ / iOS 12.0+。清单中 Vue 2、uni-app x 标记为未验证,不能当作已支持的平台宣传。
- 市场说明使用插件目录的
uni_modules/bz-smoooth-video/readme.md,更新说明使用该目录的changelog.md;根目录 README 是示例工程说明。如需提供示例,使用独立的示例工程压缩包,排除unpackage、dist、.hbuilderx、node_modules、本地签名和打包凭证,并清空示例 AppID。
HBuilderX 发布选择当前源码中的插件 package.json。若使用网页上传,插件包选择 release/bz-smoooth-video-1.0.0.zip,插件使用说明选择 uni_modules/bz-smoooth-video/readme.md,示例工程选择 release/bz-smoooth-video-example-1.0.0.zip。
插件 ZIP 根层直接包含 package.json、readme.md、changelog.md 和 utssdk/,不额外包裹 bz-smoooth-video/ 文件夹;示例 ZIP 根层直接包含 manifest.json、App.vue、pages.json、uni_modules/ 等工程文件,也不包裹工程文件夹。这与本机 HBuilderX 的 uni_modules 发布打包方式一致。示例工程的 App.vue、manifest.json、pages.json、main.js 和示例页面不放入插件包。
发布流程及清单格式参考 uni_modules 官方规范 和 插件市场发布说明。
发布前真机验证
- Android / iOS 各运行一次基础页:首帧、声音、暂停恢复、跳转、倍速、静音、contain / cover。
- 列表连续上下滑动、快速跨页和回滑:只播放当前项,相邻项能复用预加载结果。
- 切后台再回来,进入其他页面再返回,最后退出视频页:无后台音频,退出后播放器池释放,重新进入能继续播放。
- 模拟弱网 / 不可用 URL:能收到错误或缓冲状态,不因事件 detail / Map 差异报错。
Android 已在 HBuilderX 5.24、Android 15 真机上确认基础页与列表首条视频出画面;不等于所有设备或最低支持版本均已验收。当前 Windows 环境无法执行 Xcode / iOS 原生编译和 iPhone 真机测试,iOS 代码审查与属性桥接回归不能替代该步骤。
发布 iOS 支持前,至少在 iPhone 自定义基座完成:首次加载、异步换源、第二页与回滑、暂停恢复、倍速静音、切后台再恢复、退出重进、错误 URL。正式安装包也要验证,旧基座和旧 APK/IPA 不包含新的源码修复。
本地发布检查
安装 Node.js,并指定本机 HBuilderX 路径运行:
node scripts/check-release.cjs --hbuilderx D:/soft/hbuider/HBuilderX
检查包括双端首次属性同步、iOS 布尔桥接、公开 API 与说明一致性、示例 URL/id 唯一性和配置/模板解析。此脚本不执行 iOS 原生编译,也不代表插件市场审核已通过。
重新整理 1.0.0 发布文件时运行:
pwsh -File scripts/package-release.ps1 -HBuilderX D:/soft/hbuider/HBuilderX
脚本先执行本地检查,再从当前源码重新生成 release/bz-smoooth-video-1.0.0.zip(插件包)和 release/bz-smoooth-video-example-1.0.0.zip(示例工程包),检查 ZIP 根层必需文件并逐文件核对 SHA-256 后替换旧包。示例包清空 AppID,保留 10 组视频、安卓系统导航栏处理和两个发布脚本;打包采用明确的示例文件列表,不包含构建目录、运行日志、签名或本地配置。插件包包含插件目录源码与文档。两个包都直接压入各自目录内的内容,不增加外层文件夹。
release/checks.txt 保存本次本地检查结果;release/release-manifest.json 列出两个包的版本、文件清单与 SHA-256;release/SHA256SUMS.txt 提供两个压缩包的校验值。以上步骤只整理源码压缩包,不生成 APK / IPA,也不上传市场。

收藏人数:
购买源码授权版(
试用
赞赏(0)
下载 2
赞赏 0
下载 12703634
赞赏 1957
赞赏
京公网安备:11010802035340号