uni-app video标签不指定poster时 H5服务在电脑端封面图为第一帧 手机端不显示封面图

发布于 1周前 作者 ionicwang 来自 Uni-App

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

Image 1 Image 2


4 回复

使用 video 标签,不设置 poster运行在 h5 平台,经过测试 小米自带的浏览器显示为黑色,alook 浏览器可以自动展示 poster,在微信中打开也不展示 poster。
初步认为这个受到宿主浏览器的影响,和 uni-app 关系不大。
建议:为了在不同浏览器上表现一致,建议设置 poster 地址


我视频是循环出来的,是评论上传的视频。展示评论,没法设置poster

刚才提到了我使用不同的浏览器测试出了不同的效果,这个主要是不同浏览器的默认表现不一样,你可以自行判断是否绕过这个问题,提供统一的 poster 是其中一种方式。

uni-app 中使用 video 标签时,如果不指定 poster 属性,H5 服务在电脑端和手机端的表现确实会有所不同。具体表现如下:

  1. 电脑端(PC浏览器)

    • 如果不指定 poster 属性,浏览器通常会默认显示视频的第一帧作为封面图。
  2. 手机端(移动浏览器)

    • 如果不指定 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>
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!