• 动态改变video.js中视频封面,可选择指定视频封面


    //1.video.js  插入视频   一般默认静音  (video.js使用方法可以看看网上的,然后视频src是提交后台返的)

         因为加载视频封面需要10秒左右的时间  需要等一会  这个问题要想办法解决  体验感不太好

      <video id="myVideo" class="video-js" controls preload="auto" muted autoplay>
                   <source :src="videoUrl" type="video/mp4">
       </video>
    //视频封面
     <div class="select_box">
             <img :src="aboc" alt="">
    </div>
    <div class="select_btn">
            <span @click="goPrevious()" v-show="imgIndex!=0">上一张</span>
            <span @click="goNext()" v-show="imgIndex<logoimgUrl.length-1">下一张</span>
    </div>
     
     
    //2.
     return {
            aboc: '',
            imgIndex:'',获取到的视频封面数组  来控制选择那一张封面
            logoimgUrl: [],//封面返回url
            imgUrl: '',//最终提交视频封面
            videoUrl: '',//视频url
          }
    //3.methods中定义方法  event是input中
     // 获取视频  
          getVideo(event) {
            this.media = event.target.files[0]
            let file = new FormData();
            file.append('file', this.media)
            this.$axios.post('storage/upload', file).then(res => {
              console.log(res)
              this.logoimgUrl = res.data.data.images;
              console.log(this.logoimgUrl)
              this.videoUrl = res.data.data.storage.url;
              console.log(this.videoUrl)
              this.videoUrl_size = res.data.data.size;
              if (this.videoUrl_size > 52428800) {
                this.$toast({
                  message: "文件超过50M",
                  position: 'center',
                  duration: 2000
                });
              } else {
                let player = document.querySelector('#myVideo')
                player.src = this.videoUrl;
                console.log(player.src)
                player.play()
              }
              if (res.data.errno == 0) {
                const toast = this.$toast.loading({
                  duration: 0, // 持续展示 toast
                  forbidClick: true,
                  message: '加载视频封面倒计时 12 秒',
                });

                let second = 12;
                const timer = setInterval(() => {
                  second--;
                  if (second) {
                    toast.message = `视频封面倒计时 ${second} 秒`;
                  } else {
                    clearInterval(timer);
                    // 手动清除 Toast
                    this.$toast.clear();
                  }
                }, 1000);
                this.rel = false;
                this.no_rel = true;
                setTimeout(() => {
                  let _this = this;
                  _this.aboc = _this.logoimgUrl[_this.imgIndex]
                  _this.no_logo = true;
                }, 12000)
              } else {
                this.rel = true;
                this.no_rel = false;

              }
            })
          },
     //通过index选择显示照片   
        goNext() {
            this.imgIndex++;
            this.aboc = this.logoimgUrl[this.imgIndex]
          },
          goPrevious() {
            this.imgIndex--;
            this.aboc = this.logoimgUrl[this.imgIndex]
          },
     
    总体内容写的比较杂乱  见谅见谅
  • 相关阅读:
    linux在线书籍
    数据库使用记录(二)
    python读取配置文件报keyerror文件路径不正确导致的错误
    pycharm全局搜索快捷键无反应
    UVA 11054 Wine trading in Gergovia (Gergovia 的酒交易)(贪心+模拟)
    UVA 12107 Digit Puzzle(数字谜)(IDA*)
    UVA 12113 Overlapping Squares(重叠的正方形)
    UVA 10384 The Wall Pusher(推门游戏)(IDA*)
    UVA 11277 Cyclic Polygons(二分)
    【洛谷P2922】秘密消息【Trie】
  • 原文地址:https://www.cnblogs.com/fei3/p/13071052.html
Copyright © 2020-2023  润新知