这个问题想必好多朋友都遇到过,他的解决方案我的总结就是三种
1:使用nvue,但是我老大说这个可能有兼容问题,我也没有细究,写了个demo,但是最后也没有实际应用
2:使用cover-view解决,我看官网介绍的理解就是通过这个组件作为弹窗可以覆盖掉video标签,但是我没有使用过
3:使用render.js解决,这也是我的最终方案
附代码:
<!-- eslint-disable -->
<template>
<!--
videoSrc 当src变化时修改videoSrc 触发zrender的srcChange 监听播放暂停
eventDrive 将播放状态传递给zrender 可以通过自定义按钮控制播放eventHandle
randomNumChange 赋值唯一id
-->
<view
v-html="videoHtml"
id="dom-video"
class="dom-video"
:eventDrive="eventDrive"
:change:eventDrive="domVideo.eventHandle"
:videoSrc="videoSrc"
:change:videoSrc="domVideo.srcChange"
:randomNum="randomNum"
:change:randomNum="domVideo.randomNumChange"
/>
</template>
<script>
export default {
props: {
src: {
type: String,
default: "",
},
autoplay: {
type: Boolean,
default: false,
},
loop: {
type: Boolean,
default: false,
},
controls: {
type: Boolean,
default: false,
},
objectFit: {
type: String,
default: "contain",
},
muted: {
type: Boolean,
default: false,
},
poster: {
type: String,
default: "",
},
},
// 数据状态
data() {
return {