HarmonyOS鸿蒙Next中网络视频播放如何将缓存进度和视频进度放在同一个进度条中显示
HarmonyOS鸿蒙Next中网络视频播放,我拿到了缓存进度,如何将缓存进度和视频进度放在同一个进度条中显示?
2 回复
在HarmonyOS Next中实现缓存进度与播放进度同条显示,可以通过自定义ProgressBar组件实现。以下是核心实现思路:
- 使用双层进度条叠加:
<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" <!-- 缓存进度颜色 -->
/>
- 动态更新进度值:
// 更新播放进度
progressBar.setProgress((int)(currentPosition * 100 / totalDuration));
// 更新缓冲进度
progressBar.setSecondaryProgress((int)(bufferedPercentage * 100));
- 关键点说明:
- 通过secondaryProgress属性控制缓冲进度显示
- 进度值建议转换为百分比(0-100)统一处理
- 颜色建议使用半透明区分层级
- 需在播放状态回调中实时更新两个进度值
这种实现方式无需自定义View,直接利用系统ProgressBar的次级进度功能即可满足需求。注意处理好进度同步和线程安全问题。