uni-app video组件加载结束后再从头开始加载会有停顿
uni-app video组件加载结束后再从头开始加载会有停顿
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | 10 | HBuilderX |
### 操作步骤:
目前任意video加载一个视频设置loop与自动播放
### 预期结果:
播放至结尾能直接从头开始播放
### 实际结果:
播放至结尾会出现绿色的转圈加载动画,停顿个零点几或者几秒钟才进行从头播放
### bug描述:
我想要的是像抖音和快手那种做loop循环播放时播放结束到从头开始的衔接完全不存在停顿的那种,因为很多时候做套路视频都是循环的结尾即能连接视频的开头,如果结尾出现停顿,就达不到效果了。虽然增加了视频缓存至本地,但video组件loop循环播放时播放结束到从头开始播放的过程中,会有零点几秒甚至是几秒的停顿,导致很多场景实现不了。
更多关于uni-app video组件加载结束后再从头开始加载会有停顿的实战教程也可以访问 https://www.itying.com/category-93-b0.html
3 回复
好的,感谢
uni-app video组件循环播放停顿问题分析
这个问题确实会影响视频循环播放的流畅体验。以下是可能的原因和解决方案:
原因分析
- 视频缓冲机制:uni-app的video组件在循环播放时,默认会重新请求视频资源
- 平台差异:不同平台(Android/iOS)对video组件的实现方式不同
- 缓存策略:视频资源未被有效缓存导致每次循环都需要重新加载
解决方案
- 使用原生方案:
<video
src="video.mp4"
loop
autoplay
:controls="false"
:show-play-btn="false"
:show-center-play-btn="false"
:enable-progress-gesture="false"
:enable-play-gesture="true"
:show-fullscreen-btn="false"
></video>
- 尝试预加载:
// 提前创建video实例并预加载
const videoContext = uni.createVideoContext('myVideo');
videoContext.play();
- 使用自定义循环:
// 监听视频结束事件,手动seek到开头
videoContext.onEnded(() => {
videoContext.seek(0);
videoContext.play();
});