HarmonyOS鸿蒙Next中网络视频播放如何将缓存进度和视频进度放在同一个进度条中显示

HarmonyOS鸿蒙Next中网络视频播放,我拿到了缓存进度,如何将缓存进度和视频进度放在同一个进度条中显示?

2 回复

在HarmonyOS鸿蒙Next中,可以通过VideoPlayer组件的onProgressUpdate回调获取视频播放进度,同时使用VideoCache模块获取缓存进度。将两者数据同步后,利用ProgressBar组件设置progresssecondaryProgress属性,分别显示播放进度和缓存进度。具体实现需在UI线程中更新进度条状态。

更多关于HarmonyOS鸿蒙Next中网络视频播放如何将缓存进度和视频进度放在同一个进度条中显示的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS Next中实现缓存进度与播放进度同条显示,可以通过自定义ProgressBar组件实现。以下是核心实现思路:

  1. 使用双层进度条叠加:
<ProgressBar
    ohos:width="match_parent"
    ohos:height="10vp"
    ohos:progress="0"
    ohos:max="100"
    ohos:progress_hint_text=""
    ohos:progress_color="#FF0000"  <!-- 播放进度颜色 -->
    ohos:progress_background_color="#33000000" <!-- 背景色 -->
    ohos:secondary_progress="0"  <!-- 缓存进度 -->
    ohos:secondary_progress_color="#80000000" <!-- 缓存进度颜色 -->
/>
  1. 动态更新进度值:
// 更新播放进度
progressBar.setProgress((int)(currentPosition * 100 / totalDuration));

// 更新缓冲进度 
progressBar.setSecondaryProgress((int)(bufferedPercentage * 100));
  1. 关键点说明:
  • 通过secondaryProgress属性控制缓冲进度显示
  • 进度值建议转换为百分比(0-100)统一处理
  • 颜色建议使用半透明区分层级
  • 需在播放状态回调中实时更新两个进度值

这种实现方式无需自定义View,直接利用系统ProgressBar的次级进度功能即可满足需求。注意处理好进度同步和线程安全问题。

回到顶部