VUE2.0+elementUI+腾讯云点播上传视频

news/2025/2/25 8:37:18
“vue”: “^2.6.11”,
TcVod: “vod-js-sdk-v6”: “^1.7.0”,
elementui_2156_3">“element-ui”: “^2.15.6”,

直接上代码

  • 上传视频加上传封面
在这里插入代码片
<template>
    <div>
        <p>上传封面</p>
        <el-upload
            class="avatar-uploader"
            action=""
            :auto-upload="false"
            :show-file-list="false"
            :on-change="uploadCover"
        >
            <img v-if="coverImg" :src="coverImg" class="avatar"/>
            <i v-else class="el-icon-plus avatar-uploader-icon"></i>
        </el-upload>
        <p>上传视频</p>
        <el-upload
        class="uploadBtn"
        action=""
        :auto-upload="false"
        :on-change="uploadVideo"
        :show-file-list="false"
        >
        <el-button type="primary">上传视频</el-button>
        </el-upload>
        <div class="progress" v-if="uploading">上传进度: <el-progress :text-inside="true" status="success" :stroke-width="16" :percentage="progress"></el-progress></div>
        <div v-if="videoUrl">视频地址:<video controls width="250"><source :src="videoUrl" type="" /></video>				  				</div>
    </div>
</template>
在这里插入代码片
<script>
export default {
    data() {
        return {
            coverImg:'',//封面回显
            file: null, // 选择的文件
            uploading: false, // 是否正在上传
            progress: 0, // 上传进度
            videoUrl: '', // 上传成功后的视频地址
            fileId:'',//上传后台
            videoCover:'',//视频封面文件file
        };
    },
    methods: {        
        // 文件选择回调
        uploadVideo(file) {
            this.file = file.raw; // 保存选择的文件
            if(this.file){
                this.handleUpload(this.file)//上传视频云点播方法
            }
        },
        // 上传视频
        async handleUpload(file) {
            let allowedTypes = ['video/mp4', 'video/avi']; // 允许的视频格式
            let isVideo = allowedTypes.includes(file.type);
            if (!isVideo) {
                this.$message.error('只能上传视频文件(格式:mp4, avi)!');
                return false;
            }
            if (!file) {
                this.$message.warning('请先选择视频文件');
                return;
            }
            this.uploading = true;
            this.progress = 0;
            let tcVod =new TcVod.default({
                getSignature: function(){//签名的函数
                    return '验签码'
                }
            });
            try {
                let uploader = tcVod.upload({
                    mediaFile: file, // 上传的文件
                    coverFile: this.videoCover,//上传封面
                });
                // 监听上传进度
                uploader.on('media_progress', (info) => {
                    this.progress = Math.floor(info.percent * 100);
                });
                // 开始上传
                let result = await uploader.done();
                // 上传成功,获取视频地址
                this.videoUrl = result.video.url;//回显
                this.fileId = result.fileId;                      
                this.$message.success('视频上传成功');
            } catch (error) {
                console.error('上传失败:111', error);
                this.$message.error('视频上传失败');
            } finally {
                this.uploading = false;
            }
        },
        // 封面
        uploadCover(file, type) {
            this.coverImg = URL.createObjectURL(file.raw);
            this.videoCover = file.raw;//视频封面使用
        },

    },

};
</script>

在这里插入图片描述

在这里插入图片描述


http://www.niftyadmin.cn/n/5865269.html

相关文章

Java设计模式 —— 【行为型模式】状态模式(State Pattern) 详解

文章目录 一、模式介绍二、结构三、优缺点四、使用场景五、案例演示 一、模式介绍 应用程序中的有些对象可能会根据不同的情况做出不同的行为&#xff0c;我们把这种对象称为有状态的对象&#xff0c;而把影响对象行为的一个或多个动态变化的属性称为状态。当有状态的对象与外…

【java基础】Java 中的继承

一、前言 Java 作为一门经典的面向对象编程语言&#xff0c;继承是其核心特性之一。继承就如同家族血脉传承&#xff0c;子类能够承接父类的属性与方法&#xff0c;在复用代码的同时还能按需拓展 二、继承的基本概念 2.1 生活中的继承类比 在日常生活里&#xff0c;继承的概…

细说向量化知识库

向量化知识库与 RAG&#xff1a;打造智能 AI 知识检索系统 引言 在大模型&#xff08;LLM&#xff09;迅猛发展的今天&#xff0c;如何让 AI 获取最新、最准确的信息&#xff0c;成为一个核心问题。大多数 LLM 依赖其训练数据来回答问题&#xff0c;但它们的知识是静态的&#…

Scratch032(百发百中)

提示:知识回顾 1、排列克隆体的方法 2、复习“发送广播并等待”积木 3、“获取第几个字符”积木的使用 4、使用角色显示得分 前言 提示:中国射箭拥有悠久的历史,是最早进入教育体系的运动项目之一,君子六艺中“礼,乐,射,御,书,数”的射 ,就是指的射箭。这节课我带你…

【排序算法】堆排序详解

堆排序 有关 “堆” 知识的详解可以看这里——【堆】 其他经典比较类排序算法可以看这里——【六大比较类排序算法】 1. 建堆 在之前我们了解了堆&#xff0c;我们都知道大顶堆和小顶堆的特点&#xff1a; 小顶堆&#xff1a;任意节点的值 ≤ 其子节点的值。大顶堆&#xff…

VMware安装CentOS 10

VMware安装CentOS 10 创建虚拟机 点击“创建新的虚拟机”。 选择“典型&#xff08;推荐&#xff09;”&#xff0c;点击下一步。 如果选择“安装程序光盘映像文件”&#xff0c;则会采用简易安装&#xff0c;为了记录完整的安装过程&#xff0c;这里选择“稍后安装操作系统”…

在CentOS 7下部署NFS的详细教程

在CentOS 7下部署NFS的详细教程 NFS&#xff08;Network File System&#xff09;是一种分布式文件系统协议&#xff0c;允许用户在网络中的不同主机之间共享文件和目录。NFS广泛应用于Linux和Unix系统中&#xff0c;特别适合在集群环境中共享存储资源。本文将详细介绍如何在C…

Apache Flink CDC (Change Data Capture) mysql Kafka

比如使用 Flink CDC , 监听mysql bin-log日志实现数据的实时同步, 发送到kafka springboot整合flink cdc监听数据库数据 阿里开源的神仙工具&#xff0c;完美实现数据同步&#xff01;#程序员阿里开源的这个神器很好很强大。阿里开源的这个神器全面超越Canal&#xff0c;果然在…