有没有HarmonyOS鸿蒙Next中flutter双播+缓存例子?

有没有HarmonyOS鸿蒙Next中flutter双播+缓存例子? 【问题描述】:应用存在短视频快速切换播放起播时延的性能问题(检测值:978ms)目前在线短视频的要求是≤230ms

【问题现象】:项目背景:flutter_ohos,mp4,无缓冲,双播放器,目前想尝试优化,看了原生AVPlayer组件,使用LazyForEach进行数据懒加载https://developer.huawei.com/consumer/cn/forum/topic/0202203100799445698?fid=0102104600515103427,后,觉的改为原生方式,改动较大。有没有flutter双播+缓存例子吗


更多关于有没有HarmonyOS鸿蒙Next中flutter双播+缓存例子?的实战教程也可以访问 https://www.itying.com/category-92-b0.html

6 回复

尊敬的开发者,您好,

可以将VideoPlayerOptions里的mixWithOthers设置为true实现多个视频同时播放

_controller = VideoPlayerController.networkUrl(Uri.parse(_currentVideoUrl), videoPlayerOptions: VideoPlayerOptions(mixWithOthers: true))

另外,为了帮助您解决问题,请您进一步提供如下信息: 1、您当前场景具体性能差的点在哪里,可否提供场景的trace以及日志我们具体分析。 2、其他端是使用的什么方式实现双播的呢,性能如何。

更多关于有没有HarmonyOS鸿蒙Next中flutter双播+缓存例子?的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


如果目标是把起播时延压到 230ms 左右,纯 flutter_ohos 层自己做“双播+缓存”通常不够,关键还是播放器实例和解复用链路。更可行的是:1)预创建两个原生 AVPlayer,当前播放器播 A,后台把下一个视频在第二个播放器里完成 setSource+prepare;2)切换时只做 surface/索引切换,不要临时 new player;3)缓存不要只靠文件落盘,优先做预下载 + 本地代理/分片缓存,避免每次重新建连接;4)列表层继续用 LazyForEach,但性能瓶颈大多不在列表,而在播放器重建。公开的 flutter_ohos 成熟例子我暂时没见到,想稳定达标的话更建议把播放内核下沉到原生,再通过 platform channel 给 flutter 调用。

同问

目前HarmonyOS NEXT的Flutter生态暂无官方公开的“双播+缓存”完整示例。可通过ohos_multimedia_player插件创建多个播放器实例实现双播;缓存需自行结合flutter_cache_manager与鸿蒙文件系统实现。注意插件需适配ArkTS/Native桥接。

目前 HarmonyOS Next 尚未提供 Flutter 侧官方的“双播放器+缓存”示例项目。实现上,可以在 Flutter 同时维护两个播放器实例做到预加载(双播),再通过自定义 Dart 层的本地代理服务对 mp4 请求进行缓存(例如基于 HttpServer 做本地代理,播放时把 url 转换成代理地址)。但受限于 Flutter 与平台通信开销,即使加了缓存,起播时延较难稳定在 230ms 以内;你看到的原生 AVPlayer + LazyForEach 方案,才是对齐该指标的推荐路径。

回到顶部