原生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/offCastEventshowCastPanel({ useBuiltinUI:false })customAction,业务可完全自定义投屏界面。
  • 新增诊断与售后能力:getCastDiagnosticsexportCastSupportBundleinspectCastMediaSource 可输出能力矩阵、会话状态、设备列表、媒体源风险和建议动作。
  • 明确商业边界:首版只支持电视/盒子可访问的远程媒体 URL;本地文件、DRM、需登录鉴权的私有视频、屏幕镜像和录屏推流不伪造成功。
  • 降级端保持统一 API:Harmony/Web/微信小程序/支付宝小程序返回明确不支持或 supported:false,只保留业务自定义入口,不声明真实投屏成功。
  • 配套发布资料:README、错误码、权限说明、自定义基座说明、Android/iOS 验收脚本、插件市场封面和示例图已同步首发版本。