uni-app video标签 拖动进度条或调用seek()后 视频播放卡顿 几秒卡一次

uni-app video标签 拖动进度条或调用seek()后 视频播放卡顿 几秒卡一次

开发环境 版本号 项目创建方式
Windows Win10企业版 HBuilderX
## 操作步骤:
拖动进度条或调用seek()后 视频播放会很卡顿 几秒卡一次

## 预期结果:
拖动进度条或调用seek()后 视频播放流畅

## 实际结果:
拖动进度条或调用seek()后 视频播放会很卡顿 几秒卡一次

## bug描述:
video标签 拖动进度条或调用seek()后 视频播放会很卡顿 几秒卡一次  
我的客户反馈大部分手机都有这种情况  
我用华为mate30 安卓10 云打包的安卓APP测试的 存在这种情况  

[http://quanrong.oss-cn-shanghai.aliyuncs.com/uploads/20210421/oss_file_564677a8024bf12810737cd144413aef.mp4](http://quanrong.oss-cn-shanghai.aliyuncs.com/uploads/20210421/oss_file_564677a8024bf12810737cd144413aef.mp4)

更多关于uni-app video标签 拖动进度条或调用seek()后 视频播放卡顿 几秒卡一次的实战教程也可以访问 https://www.itying.com/category-93-b0.html

7 回复

一直几秒就卡顿一次,感觉像是不缓冲了

更多关于uni-app video标签 拖动进度条或调用seek()后 视频播放卡顿 几秒卡一次的实战教程也可以访问 https://www.itying.com/category-93-b0.html


稍等 我看一下

大佬看了吗

刚才试了一下,确实会有播放会卡顿的问题。 你把你的原视频 用下面这个命令转码一下,试试
ffmpeg -i input.mp4 -movflags +faststart out.mp4 ouput.mp4是转码后的文件

楼主 问题解决了吗? 按照上面转码可以吗?

回复 我会很认真: 我们按这个转码可以播放了

这是一个典型的视频seek后缓冲卡顿问题,主要与uni-app底层视频组件实现机制有关。以下是可能的原因和解决方案:

可能原因:

  1. 视频编码格式或关键帧间隔过大,seek后需要较长时间定位到最近的关键帧
  2. 网络缓冲策略在seek后重新建立缓冲区间
  3. 原生视频组件在seek操作后的缓冲处理机制

解决方案:

  1. 优化视频源文件

    • 减小关键帧间隔(建议1-2秒)
    • 使用H.264编码,避免使用非常规编码格式
    • 降低视频码率或分辨率
  2. 使用预加载策略

    // 在seek前预加载目标时间点附近的数据
    videoContext.seek(position);
    
  3. 添加缓冲状态处理

    <video [@waiting](/user/waiting)="onVideoWaiting" [@canplay](/user/canplay)="onVideoCanplay"></video>
    
    methods: {
      onVideoWaiting() {
        // 显示加载状态
      },
      onVideoCanplay() {
        // 隐藏加载状态
      }
    }
回到顶部