uni-app video标签不指定poster时 H5服务在电脑端封面图为第一帧 手机端不显示封面图
uni-app video标签不指定poster时 H5服务在电脑端封面图为第一帧 手机端不显示封面图
示例代码:
<video :src="imgUrl" v-if="baseSetting.thumbType === '2'" style="width: 100%; height: 100%;" />
操作步骤:
<video :src="imgUrl" v-if="baseSetting.thumbType === '2'" style="width: 100%; height: 100%;" />
预期结果:
手机端把视频第一帧作为封面图
实际结果:
手机端未显示封面图
bug描述:
uniapp video标签,不指定poster,H5服务在电脑的封面图是第一帧,在手机端则不显示封面图。
我认为在手机端不显示封面图是一个BUG。
项目信息 | 描述 |
---|---|
产品分类 | uniapp/H5 |
PC开发环境操作系统 | Windows |
PC开发环境版本号 | Windows 10 专业版 22H2 |
HBuilderX类型 | 正式 |
HBuilderX版本号 | 3.99 |
浏览器平台 | 手机系统浏览器 |
浏览器版本 | 各种手机浏览器 |
项目创建方式 | HBuilderX |
App下载地址 | 私密地址暂不上传,如有需要可联系邮箱ziqi1106@163.com |
4 回复
使用 video 标签,不设置 poster运行在 h5 平台,经过测试 小米自带的浏览器显示为黑色,alook 浏览器可以自动展示 poster,在微信中打开也不展示 poster。
初步认为这个受到宿主浏览器的影响,和 uni-app 关系不大。
建议:为了在不同浏览器上表现一致,建议设置 poster 地址
我视频是循环出来的,是评论上传的视频。展示评论,没法设置poster
刚才提到了我使用不同的浏览器测试出了不同的效果,这个主要是不同浏览器的默认表现不一样,你可以自行判断是否绕过这个问题,提供统一的 poster 是其中一种方式。
在 uni-app
中使用 video
标签时,如果不指定 poster
属性,H5 服务在电脑端和手机端的表现确实会有所不同。具体表现如下:
-
电脑端(PC浏览器):
- 如果不指定
poster
属性,浏览器通常会默认显示视频的第一帧作为封面图。
- 如果不指定
-
手机端(移动浏览器):
- 如果不指定
poster
属性,大多数移动浏览器不会显示任何封面图,视频区域会显示为空白或加载状态。
- 如果不指定
解决方案
为了确保在电脑端和手机端都能显示封面图,建议你明确指定 poster
属性。poster
属性用于指定视频封面图的 URL,这样无论在任何设备上,封面图都会显示。
<video
src="your-video-url.mp4"
poster="your-poster-image-url.jpg"
controls
></video>
其他注意事项
- 封面图尺寸:确保封面图的尺寸与视频的宽高比一致,以避免封面图被拉伸或压缩。
- 兼容性:虽然大多数现代浏览器都支持
poster
属性,但在一些旧版浏览器中可能会有兼容性问题。可以通过测试来确保兼容性。
动态设置封面图
如果你需要根据不同的条件动态设置封面图,可以在 uni-app
中使用数据绑定:
<template>
<video
:src="videoUrl"
:poster="posterUrl"
controls
></video>
</template>
<script>
export default {
data() {
return {
videoUrl: 'your-video-url.mp4',
posterUrl: 'your-poster-image-url.jpg'
};
}
};
</script>