logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

HarmonyOS 「校园二手交易商城」App应用实战 49:视频播放控制与异常处理

错误统一走 resetonError与 Promise rejection 两条通道最终都reset()回idle,配合状态机的idle分支自动重建数据源,实现自愈。先 off 后 release:释放顺序反了会留下野回调,release()后对象不可再用。closeRawFdSync 要 try/catch:fd 可能已被关闭,重复关闭抛异常属于预期,吞掉并记日志。状态守卫防非法调用stoppe

#音视频#harmonyos
HarmonyOS 「校园二手交易商城」App应用实战 48:直播与购物袋联动

事件只传意图是纯事件出口,打开什么面板、怎么呈现由页面根据断点决定——小屏弹窗、大屏侧栏,同一事件两套承载。panelType 互斥渲染ShopBag与PayCard用visibility互斥显示而非条件渲染,两个组件常驻内存、切换零重建;真实项目组件重时可改为if/else。BuilderParam 注入按钮作为插槽从页面注入ShopBag再注入ShopList,按钮的样式与行为可以完全自定义,

#harmonyos#ubuntu#华为
HarmonyOS 「校园二手交易商城」App应用实战 47 直播头部:LiveHeader 与 LiveHeaderPC

交互语义因端而异:手机"关闭=画中画",PC"返回=退页面",同一onClose事件在不同产品里绑定了不同实现,事件只传意图、不传实现。系统符号图标优先:PC 版用而非位图,随系统字体/主题自适应,PC 上是更"原生"的选择。窗口装饰与应用内按钮分工只藏标题栏;窗口级关闭由系统装饰负责,应用内按钮只管导航栈;兜底释放资源。状态复用:两个头部共享,数据逻辑只写一遍;差异全部收敛在视图层。头部是直播页

#harmonyos
HarmonyOS 「校园二手交易商城」App应用实战 46 直播商品列表:LiveShopList 与带货商品

同一组件两种形态贯穿方向、尺寸、对齐、点击行为,比复制两个组件更易维护,是"参数化形态"的范式。选中态驱动展开是唯一选中源,卡片宽高、文字显隐、滚动定位都以它为准;主播切品时只改这一个值。点击行为按断点降级:小屏横条不响应点击,避免误触;真实项目可改为小屏点击也开半屏详情。反转数据适配侧栏:侧栏"最新商品在最底",用不改原数组、不污染横条数据。带货商品列表讲完,直播页的三块悬浮层(评论、商品)已就

#harmonyos
HarmonyOS 「校园二手交易商城」App应用实战 45 直播评论:LiveComment 与消息流

数组顺序即时间线的返回顺序决定了消息流先后,新消息永远push到数组尾部,配合才正确。ForEach 的 key 要稳定保证评论内容变化时节点复用稳定;真实场景建议用服务端消息 id 做 key。高度断点参与布局HEIGHT_MD下压缩评论数量,避免小高度窗口被消息占满;高度断点与宽度断点一样值得系统化使用。悬浮层要半透明:气泡背景用这类带透明度的资源色,否则会像一块膏药糊在画面上。商品列表如何在

#harmonyos
HarmonyOS 「校园二手交易商城」App应用实战 44 画中画:PipWindowUtil 实现

能力探测放最前与两道门卫缺一不可,模拟器/低端机常在这里降级。三个 navid 必须一致,任何一处不一致都会导致 PiP 恢复失败或回栈错乱。停止必须串行:不串行化,页面退出与用户手动关闭并发时底层会崩。良性错误码要识别:1300012/1300015 按"已停止"处理,只清理不重试。isShowingPip 是唯一事实源:用它区分"正在展示"与"已被外部关闭",避免重复 stop。

#harmonyos
HarmonyOS 「校园二手交易商城」App应用实战 43 AVPlayer 状态机与播放控制:AvPlayerUtil

状态校验前置:每个公开方法都先查和当前state,这是 AVPlayer 状态机编程的第一纪律。回调里别同步做重活是异步回调,内部getRawFd用了await,但要避免在其中再注册监听器。error 后必须 reseterror状态下播放器不可用,onError里调用让它回到idle,之后状态机又能从idle重新走一遍(第 9 篇展开)。单例别跨 Ability 共享按 Ability 名隔离

#harmonyos
HarmonyOS 「校园二手交易商城」App应用实战 42 XComponent 与视频渲染

type 别用错:视频播放必须;用 TEXTURE 会拿不到预期的 Surface 语义,NODE 类型则与 ArkUI 状态系统耦合更深。onLoad 是唯一安全时机:在里调大概率拿到空串,Surface 尚未创建。controller 全局唯一:XComponent 的 controller 要与 PiP 共用同一实例,这是"画面从页面平滑过渡到画中画"的前提;新建一个 controller

#harmonyos
HarmonyOS 「校园二手交易商城」App应用实战 41 直播页整体架构:LiveBroadCastPage

navid 一致性Index的 Navigation id、的 NavDestination id、PiP 的三者必须一致,否则画中画回栈会失效。Stack 叠加层级:视频永远在底层,评论/商品/头部为悬浮层;半透明遮罩用这类带透明度的资源色。断点降档:侧栏打开后直播舞台变窄,必须用降档断点,否则商品条、评论宽度会溢出。资源释放:页面释放 PiP,视频组件释放 AVPlayer,二者都判空防护(至

#harmonyos
HarmonyOS 「校园二手交易商城」App应用实战 39 底部操作栏:ProductUtil 加购与购买

Event上抛而非直接改父状态不持有,避免组件与页面状态强耦合;复用操作栏到直播页时只需换一个onBuyClick实现。守卫条件时禁用购买,避免在直播/分屏场景误触拉起支付弹窗;接入真实业务时建议把守卫逻辑下沉到页面层,操作栏保持"纯展示 + 上抛"。善用:悬浮栏空间紧张时优先压缩Blank而非图标,保证核心按钮永远可见。毛玻璃开销有 GPU 成本,滚动频繁的页面建议评估性能;必要时降级为半透明纯

#harmonyos
    共 30 条
  • 1
  • 2
  • 3
  • 请选择