uni-app Video组件不显示 controls 只会在ios端出现

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

uni-app Video组件不显示 controls 只会在ios端出现

测试过的手机

手机型号 系统版本
iPhone 6s Plus 15.7.6
iPhone 12 16

示例代码

<video id="popupVideo" style="width:640rpx;height:360rpx;" :src="sysVideo.videoUrl" :title="sysVideo.title" @play="play" @pause="pause" @ended="ended" @fullscreenchange="fullscreenchange" />

操作步骤

<video id="popupVideo" style="width:640rpx;height:360rpx;" :src="sysVideo.videoUrl" :title="sysVideo.title" @play="play" @pause="pause" @ended="ended" @fullscreenchange="fullscreenchange" />

预期结果

  • 在所有iOS机型上正常显示

实际结果

  • 未显示

bug描述

video放在 uni-popup 中展示,controls 默认播放控件会在个别的iOS机型上显示不出来。 看到站内你们有说修复过这类问题。但是还是会出现!


6 回复

怎么解决的?我22年遇到了这个问题没解决,今年又遇到了。


需要将video标签的高度设置成整数

楼主解决了吗?我在iOS真机上也遇到不显示controls,设置:controls="true"也没用

解决了,是因为动态计算video标签高度时出现了浮点数。需要将video标签高度设置成整数,就能显示controls了

解决方案,设置高度使用px不要用rpx就解决了。

在uni-app中,Video 组件用于嵌入视频播放功能。如果你遇到了 Video 组件不显示 controls(播放控件),并且这个问题只在 iOS 端出现,这通常是由于组件属性设置不当或者平台差异导致的。

在 uni-app 中,Video 组件的 controls 属性用于显示或隐藏播放控件。正常情况下,设置 controls="true" 应该能够在所有平台上显示控件。然而,由于 iOS 的特殊行为,有时可能需要额外的处理或检查。

以下是一个基本的 Video 组件使用示例,展示了如何设置 controls 属性:

<template>
  <view class="container">
    <video
      id="myVideo"
      class="video-player"
      src="https://www.example.com/path/to/your/video.mp4"
      controls="true"
      autoplay="false"
      loop="false"
      muted="false"
      @play="onPlay"
      @pause="onPause"
      @ended="onEnded"
    ></video>
  </view>
</template>

<script>
export default {
  methods: {
    onPlay() {
      console.log('Video is playing');
    },
    onPause() {
      console.log('Video is paused');
    },
    onEnded() {
      console.log('Video has ended');
    }
  }
}
</script>

<style>
.container {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
  background-color: #000;
}

.video-player {
  width: 100%;
  max-width: 600px;
}
</style>

在这个例子中,controls="true" 应该确保播放控件在所有平台上可见。如果你发现控件在 iOS 上仍然不显示,可以尝试以下几个步骤:

  1. 确保视频格式支持:iOS 对视频格式的支持可能有所不同,确保你的视频格式是 iOS 支持的(如 MP4)。

  2. 检查 iOS 特定样式:有时 CSS 样式可能会影响控件的显示,特别是在全屏模式下。确保没有 CSS 规则隐藏了控件。

  3. 使用 JavaScript 控制:如果问题依旧存在,你可以尝试使用 JavaScript 动态设置 controls 属性或在必要时触发控件显示。

  4. 查看控制台日志:使用 Safari 的开发者工具查看 iOS 设备上的控制台日志,检查是否有与视频播放相关的错误或警告。

  5. 更新 uni-app 和依赖:确保你的 uni-app 和所有相关依赖都是最新版本,因为新版本可能修复了与视频播放相关的问题。

如果上述方法都不能解决问题,可能需要更深入地检查代码或向 uni-app 社区寻求帮助。

回到顶部