原生DLNA投屏控制UTS插件(支持安卓 iOS 鸿蒙) - 更新日志
1.0.6(2026-06-06)
- 优化 iOS 内置投屏面板:新增
DLNA 设备 / AirPlay 路由 分段切换,默认进入 DLNA 设备页,避免系统路由入口和 DLNA 设备列表混在同一屏。
- iOS DLNA 页保留真实设备列表、扫描入口、投屏当前媒体、暂停/恢复、停止和断开控制;AirPlay 页只保留系统
AVRoutePickerView 路由入口。
- 面板底部主按钮会随分段模式切换:DLNA 页为“扫描 DLNA 设备”,AirPlay 页为“打开系统路由”。
- UTS 层新增
panelMode 状态同步和 switchPanelMode 动作处理,关闭面板后恢复 DLNA 默认页,防止重开时沿用旧路由页状态。
- 同步发布版本口径:
package.json、README 当前版本、Android/iOS/Harmony/API 诊断版本、商业 readiness、结构守卫、商业守卫、readiness 报告、运行证据脚本和证据包策略统一到 1.0.6。
1.0.4(2026-06-06)
- 修复 Android 内置投屏面板重复选集:移除投屏中媒体卡下方额外的顶部数字选集预览,只保留下方“选集”横向控制,避免同一组选集控件重复展示。
- 修复业务点击“停止”后再次打开内置面板沿用旧投屏状态的问题:Android 原生层和 UTS 层都会清空当前设备、当前媒体、播放进度和会话状态,重新打开内置面板时从扫描设备初始页开始。
- 优化
stopCast 幂等状态判断:无设备、无媒体或已停止时返回成功并标记 alreadyIdle,不再把“已经停止”误报成找不到设备,同时向业务派发 disconnected 事件同步状态。
- 新增 Android 内置面板 UI 守卫并接入预检、结构守卫和商业就绪守卫,防止重复选集控件和停止态回退在后续修改中再次出现。
- 同步发布版本口径:
package.json、README 当前版本、Android/iOS/Harmony/API 诊断版本、商业 readiness、结构守卫、商业守卫、readiness 报告、运行证据脚本和证据包策略统一到 1.0.4。
1.0.3(2026-06-05)
- 升级 Harmony 内置面板体验:
showCastPanel({ useBuiltinUI:true }) 优先使用 ArkUI openBindSheet 近全屏底部面板,承接搜索设备、选择设备、投屏当前媒体、暂停、恢复、停止、断开、音量、快退快进、选集和清晰度控制;UIContext 不可用时降级到系统 ActionSheet。
- 对齐 Android 内置面板视觉:Harmony 面板改为暗黑科技风控制台,补齐顶部发光把手、状态卡、媒体进度、音量状态、设备区、遥控控制台、中心发光控制盘和胶囊控制项。
- 精修 Harmony 主题切换图标:内置 Heroicons(MIT)太阳、月亮、跟随系统显示器三态线性 path,主题按钮与关闭按钮统一 50x38 胶囊尺寸、同类背景和圆角,真机检查不再出现粗糙图标、省略号或偏位显示。
- 修复 Harmony 内置面板设备列表不刷新:SSDP 已发现
Macast(yunxi) 等 DLNA 设备并触发 deviceFound / deviceListChange / discoveryStop 时,打开中的 ArkUI Sheet 会主动 update() 当前参数,不再停留在 0 台设备 / 暂未发现可用设备。
- 修复 Harmony 真机 SSDP 响应解码:
@ohos.net.socket 返回的 UDP 响应为 ArrayBuffer 时,改用 @ohos.util.TextDecoder 解码后解析 LOCATION,并在诊断快照中输出响应数、LOCATION 数、解码错误数和消息预览。
- 修复 Harmony ArkTS 面板编译风险:调整主题按钮 ArkUI 组件链式调用位置,避免
.width/.height/.onClick 被挂到 if/else 语句块后导致 Declaration or statement expected / Cannot find name 'width'。
- 同步发布版本口径:
package.json、README 当前版本、Android/iOS/Harmony/API 诊断版本、商业 readiness、结构守卫、商业守卫、readiness 报告、运行证据脚本和证据包策略统一到 1.0.3。
1.0.2(2026-06-03)
- 修复 Harmony 真机 ArkTS 编译失败:规避
arkts-no-structural-typing,不再把具体 options 或对象字面量结构化传给公共接口。
- 修复 Harmony
implements 类型限制:CastEvent / CastCallbacks / CastCapabilities / CastSessionState 调整为真正的 interface,避免 arkts-implements-only-iface。
- 修复 Harmony 回调适配器可选字段类型:
success / fail / complete 保持 optional/undefined 语义,不再把 null 赋给 CastCallbacks 可选回调。
- 同步发布版本口径:
package.json、README、运行诊断版本、商业 readiness、结构守卫、商业守卫、readiness 报告和证据包版本统一到 1.0.2。
1.0.1(2026-06-03)
- 修复平台标记检查:兼容当前
package.json 的 uni-app / uni-app x 嵌套平台声明,同时保留 Harmony、Web/H5、小程序、快应用只提供降级入口的说明。
- 修复 readiness 版本口径:交付状态文件和 readiness 报告脚本同步到
1.0.1,避免状态报告仍检查旧版本。
- 修复 iOS UTS 类型导入:补充
CastCallbacks 导入,并保持 iOS 回调 helper 集中收口,已通过 iOS LSP lint。
1.0.0(2026-06-02)
- 首发版本:
lizhao-cast-screen 定位为暗黑科技风媒体投屏 UTS 插件,面向 uni-app / uni-app x 提供 Android DLNA/UPnP 与 iOS AirPlay 的跨端投屏能力。
- Android 真实实现 DLNA/UPnP 媒体投屏:支持 SSDP 多网卡搜索、设备去重、连接、播放远程 http/https 媒体 URL、暂停、恢复、seek、音量、停止和断开。
- iOS 真实接入系统 AirPlay 路由入口:内置面板承载 AVRoutePickerView,使用 AVPlayer 外部播放能力承接远程媒体 URL,不做私有 AirPlay 反射。
- 内置暗黑科技风投屏面板:底部近全屏、深色基底、高对比青绿色交互、科技玻璃卡片、横向媒体胶囊和环形发光控制盘;同时支持 dark / light / auto 主题。
- 连接设备后自动切换为投屏控制台:支持选集、上一集、下一集、清晰度、进度、时长、音量、投屏当前媒体、暂停/恢复、快退 15 秒、快进 15 秒、停止投屏和断开设备。
- 暴露完整业务事件:支持
onCastEvent/offCastEvent、showCastPanel({ useBuiltinUI:false }) 和 customAction,业务可完全自定义投屏界面。
- 新增诊断与售后能力:
getCastDiagnostics、exportCastSupportBundle、inspectCastMediaSource 可输出能力矩阵、会话状态、设备列表、媒体源风险和建议动作。
- 明确商业边界:首版只支持电视/盒子可访问的远程媒体 URL;本地文件、DRM、需登录鉴权的私有视频、屏幕镜像和录屏推流不伪造成功。
- 降级端保持统一 API:Harmony/Web/微信小程序/支付宝小程序返回明确不支持或
supported:false,只保留业务自定义入口,不声明真实投屏成功。
- 配套发布资料:README、错误码、权限说明、自定义基座说明、Android/iOS 验收脚本、插件市场封面和示例图已同步首发版本。