往期推文全新看点
- 鸿蒙(HarmonyOS)北向开发知识点记录~
- 鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~
- 鸿蒙应用开发与鸿蒙系统开发哪个更有前景?
- 嵌入式开发适不适合做鸿蒙南向开发?看完这篇你就了解了~
- 对于大前端开发来说,转鸿蒙开发究竟是福还是祸?
- 鸿蒙岗位需求突增!移动端、PC端、IoT到底该怎么选?
- 记录一场鸿蒙开发岗位面试经历~
- 持续更新中……
简介
为了帮助开发者解决在应用中在线短视频快速切换时容易出现快速切换播放时延过长的问题,将提供对应场景的解决方案。
该解决方案使用:
- 视频播放框架AVPlayer和滑块视图容器Swiper进行短视频滑动轮播切换。
- 绘制组件XComponent的Surface类型动态渲染视频流。
- 使用LazyForEach进行数据懒加载,设置cachedCount属性来指定缓存数量,同时搭配组件复用能力以达到高性能效果,(在冷启动过程中创建一个AVPlayer并进行数据初始化到prepared阶段,在轮播过程中,每次异步创建一个播放器为下一个视频播放做准备)。
最终实现短视频快速切换起播时延达到≤230ms的效果。
说明
如果开发者使用自研播放器引擎而非AVPlayer,也可以参考该解决方案思路实现优化。
效果展示
图1 在线短视频滑动切换效果图

场景说明
适用范围
适用于应用中在线短视频快速切换,容易出现快速切换播放起播慢体验不佳的场景。
场景体验指标
起播时延计时标准
1、以用户滑动屏幕后抬手,手指离屏时刻为起点,以视频第二帧画面显示时刻为终点(不是封面帧)。
2、转场动画时长建议设置300ms。
3、在动画开始时使用预先准备的播放器起播,起播时延控制在230ms内。
| 描述 | 应用内滑动视频,新视频起播时延应≤230ms。 |
|---|---|
| 类型 | 规则 |
| 适用设备 | 手机、折叠屏、平板 |
| 说明 | 无 |
场景分析
典型场景及优化方案
典型场景描述
短视频:以小于5分钟的短视频为例进行说明
- 应用内滑动视频,新视频起播时延≤230ms(不包含滑动动画效果耗时)。
- 起点时间:滑动离手;时间终点:视频内容开始播放,画面发生变化。
场景优化方案
AVPlayer:
- 数据懒加载
在线短视频预加载,冷启动时创建第一个播放器,播放当前视频时预加载下一个播放视频(预加载下一个视频的时候会使用户的流量消耗增加,需要开发者自行决策),绘制组件XComponent的Surface类型将视频流进行动态渲染、使用LazyForEach进行数据懒加载,设置cachedCount属性来指定缓存数量,同时搭配组件复用能力

APP开发——在线短视频流畅切换&spm=1001.2101.3001.5002&articleId=143186395&d=1&t=3&u=edb277574f5e40b984dfdfebd1839a79)
1073

被折叠的 条评论
为什么被折叠?



