问题说明
项目背景
项目使用腾讯云点播服务进行视频内容分发。需要实现前端视频流量监控功能,当用户观看视频消耗的流量达到特定阈值时,自动终止视频播放。同时会将相关数据记录到数据库,为统计页面做准备。
技术环境
- 前端框架:uni-app ( Web 端)
- 视频播放器:腾讯云视立方·播放器 SDK ( TCPlayer )
已尝试方案
-
使用 Performance API 监控
- 尝试通过
performance.getEntriesByType('resource') 获取视频资源的 transferSize
- 问题:
transferSize 始终返回 0 ,无法获取实际流量数据
-
通过播放器的 buffered() 方法估算流量
- 实现思路:使用公式 (已缓冲时长 / 视频总时长) × 视频文件大小 计算流量消耗
- 问题:当视频首次缓冲到 100% 后,即使用户拖动进度条触发新的数据下载,缓冲进度依然显示为 100%,导致无法统计到新增的流量消耗
待解决问题
- 如何准确获取视频播放过程中的实时流量消耗
|