uni-app Video组件不显示 controls 只会在ios端出现
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机型上显示不出来。 看到站内你们有说修复过这类问题。但是还是会出现!
怎么解决的?我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 上仍然不显示,可以尝试以下几个步骤:
-
确保视频格式支持:iOS 对视频格式的支持可能有所不同,确保你的视频格式是 iOS 支持的(如 MP4)。
-
检查 iOS 特定样式:有时 CSS 样式可能会影响控件的显示,特别是在全屏模式下。确保没有 CSS 规则隐藏了控件。
-
使用 JavaScript 控制:如果问题依旧存在,你可以尝试使用 JavaScript 动态设置
controls
属性或在必要时触发控件显示。 -
查看控制台日志:使用 Safari 的开发者工具查看 iOS 设备上的控制台日志,检查是否有与视频播放相关的错误或警告。
-
更新 uni-app 和依赖:确保你的 uni-app 和所有相关依赖都是最新版本,因为新版本可能修复了与视频播放相关的问题。
如果上述方法都不能解决问题,可能需要更深入地检查代码或向 uni-app 社区寻求帮助。