uni-app nvue 页面video组件前几秒画面慢并且没有声音
uni-app nvue 页面video组件前几秒画面慢并且没有声音
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | win10 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Windows
PC开发环境操作系统版本号:win10
HBuilderX类型:正式
HBuilderX版本号:3.2.16
手机系统:Android
手机系统版本号:Android 12
手机厂商:华为
手机机型:红米k40
页面类型:nvue
vue版本:vue2
打包方式:云端
示例代码:
``` <video id="myVideo" src="https://img.cdn.aliyun.dcloud.net.cn/guide/uniapp/%E7%AC%AC1%E8%AE%B2%EF%BC%88uni-app%E4%BA%A7%E5%93%81%E4%BB%8B%E7%BB%8D%EF%BC%89-%20DCloud%E5%AE%98%E6%96%B9%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B@20200317.mp4" autoplay ></video>
操作步骤:
nvue 页面video组件前几秒画面慢并且没有声音,两三秒后就正常了
预期结果:
nvue 页面video组件前几秒画面慢并且没有声音,两三秒后就正常了
实际结果:
nvue 页面video组件前几秒画面慢并且没有声音,两三秒后就正常了
bug描述:
nvue 页面video组件前几秒画面慢并且没有声音,两三秒后就正常了
更多关于uni-app nvue 页面video组件前几秒画面慢并且没有声音的实战教程也可以访问 https://www.itying.com/category-93-b0.html
6 回复
设置成软解码 有没有这个问题
play-strategy=“1” 是这个的问题
好吧我在说废话
这个问题是 nvue 页面中 video 组件在 Android 平台上的典型性能问题,主要源于视频播放器的初始化缓冲和渲染管线建立需要时间。
核心原因分析:
- 播放器初始化延迟:nvue 页面使用原生渲染,video 组件对应的是原生播放器控件。首次加载视频时,系统需要初始化 MediaPlayer、解码器,并建立音视频同步管线,这个过程需要几百毫秒到几秒的时间。
- 网络缓冲不足:虽然你使用的是网络视频,但即使本地视频也会出现此现象,因为播放器需要先缓冲足够的数据帧才能开始流畅播放。
- 首帧渲染开销:视频解码后的第一帧画面需要经过 GPU 渲染管线,在 nvue 的原生渲染环境中,这个初始渲染过程可能比后续帧更耗时。
针对性解决方案:
-
预加载机制:
// 在页面 onLoad 或合适时机预创建 video 上下文 onLoad() { this.videoContext = uni.createVideoContext('myVideo', this) // 可提前设置源但不自动播放 } -
使用 poster 占位图:
<video id="myVideo" src="your-video-url" poster="/static/poster.jpg" @loadedmetadata="onVideoReady" ></video>methods: { onVideoReady() { // 元数据加载完成后可开始播放 this.videoContext.play() } } -
调整播放策略:
- 延迟 500ms-1000ms 再开始播放
- 先静音播放,待画面流畅后再开启声音
setTimeout(() => { this.videoContext.play() setTimeout(() => { this.videoContext.muted = false }, 2000) }, 500)


