vue + element ui实现播放器功能以及动态传递url导致无法播放的坑

vue+elementui实现列表弹框播放视频

实现的效果图

实现的播放效果

实现的代码如下

<el-table-column

v-if="formName !== '在线表格'"

align="center"

fixed="right"

label="实时监控"

class-name="operate-col"

width="70">

<template #default="scope">

<div

class="chat-tipOne"

@click="playVideo(require('../../assets/images/runtime/crm_monitoring.mp4'))"

title="实时监控"

></div>

</template>

</el-table-column>

data中

dialogPlay: false,

videoUrl: '',

methods中

playVideo (url) {

this.videoUrl = url;

this.dialogPlay = true;

},

closeDialog () {

this.videoUrl = '';

},

这样的话就可以实现在浏览器中点击图片进行播放视频了

遇到的坑:

如果动态单纯传递url的话,会导致视频无法播放代码如下

playVideo('../../assets/images/runtime/crm_monitoring.mp4')

故因此要使用require这个属性让其找到图片或视频

而require属性不能通过预加载

所以只能通过require直接写死url,而不是动态复制如:

var imgUrl = "../../assets/images/runtime/crm_monitoring.mp4";

let img = require(imgUrl);

require(`../../assets/images/${showAllExpended?'unfold':'up'}.mp4`

那代码就会报错,因为require是无法动态打包的

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
您好,关于您的问题,可以通过以下步骤实现图片预览: 1. 首先,需要安装并引入 element-ui 组件库和 vue-preview 插件。 2. 在需要实现图片预览的页面中,使用 <el-upload> 组件上传图片,并设置相关属性,如 action、before-upload、list-type 等。 3. 在 <el-upload> 组件的 slot 属性中添加自定义内容,这里可以使用 vue-preview 插件来实现图片预览。具体实现方法如下: ``` <el-upload action="your_upload_url" :before-upload="checkImage" list-type="picture-card"> <i slot="default" class="el-icon-plus"></i> <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div> // 添加自定义内容 <vue-preview :slides="slides"></vue-preview> </el-upload> ``` 4. 在 data 中定义 slides 数组,并在 checkImage 方法中动态生成 slides 数组的内容,用于传递vue-preview 组件进行图片预览。具体实现方法如下: ``` data() { return { slides: [] } }, methods: { checkImage(file) { const isJPG = file.type === 'image/jpeg' || file.type === 'image/png'; const isLt2M = file.size / 1024 / 1024 < 2; if (!isJPG || !isLt2M) { this.$message.error('上传图片只能是 JPG/PNG 格式,且不超过 2MB'); return false; } // 生成 slides 数组,并使用 vue-preview 进行图片预览 const reader = new FileReader(); reader.readAsDataURL(file.raw); reader.onload = () => { this.slides.push({ src: reader.result }); this.$nextTick(() => { this.$refs.preview.open(); }); }; } } ``` 以上就是使用 vue 结合 element-ui 实现图片预览的方法了,希望能对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值