一、背景概述
在企业里很多的网站系统开发都会需要实现用到视频上传的功能,所以这里借助腾讯云点播Web端上传SDK实现简单的视频上传的demo。
开发准备
1、搭建一个vue项目;
2、项目里安装sdk插件vod-js-sdk-v6
#npm install vod-js-sdk-v6
开发步骤
1、引入vod-js-sdk-v6
// npm install vod-js-sdk-v6 之后,在页面中直接 import 引入
import TcVod from 'vod-js-sdk-v6'
2、定义获取上传签名的函数(由后端提供获取上传签名接口)
// 普通函数写法
function getSignature() {
return axios.post(url).then(function (response) {
return response.data.signature;
})
};
// 箭头函数写法
const getSignature = () => {
return axios.post(url).then(function (response) {
return response.data.signature;
})
}
3、通过SDK实现上传
// 创建上传实例
const tcVod = new TcVod({
getSignature: getSignature, // 前文中所述的获取上传签名的函数
});
// console.log("开始上传");
uploader.on("media_progress", function (info) {
console.log("进度", info); // 进度
});
// 视频上传完成时
uploader.on("media_upload", function (info) {
console.log("上传成功", info); // 进度
});
// 上传完成回调
uploader
.done()
.then(function (doneResult) {
console.log("视频地址:", doneResult.video.url);
})
.catch(function (err) {
console.log(err);
});
demo源码
<template>
<div id="">
<input type="file" name="" @change="fole" id="input1" value="" />
<br/>
<button @click="cancel">取消</button>
</div>
</template>
<script>
import {
ref,
onBeforeMount,
onMounted,
onBeforeUpdate,
onUpdated,
onBeforeUnmount,
onUnmounted,
onErrorCaptured,
reactive
} from 'vue';
import TcVod from 'vod-js-sdk-v6'
export default {
setup() {
let progress = ref('');
let status = ref('');
let typeArr = ['png', 'jpg', 'bmp', 'pbm'];
let imgDom = '';
const cancel = () => {};
const getSignature = () => {
return axios.post(url).then(function(response) {
return response.data.signature;
})
};
const fole = () => {
let input1 = document.getElementById('input1')
// let coverFile = document.getElementById('coverFile')
if (input1.length == 0) {
console.error('请上传视频')
} else if (getSignature() == '') {
console.error('请添加正确的上传签名')
}
const tcVod = new TcVod({
getSignature: getSignature // 前文中所述的获取上传签名的函数
})
const uploader = tcVod.upload({
mediaFile: input1.files[0], // 媒体文件(视频或音频或图片),类型为 File
// coverFile: coverFile.files[0]
})
console.log('开始上传')
uploader.on('media_progress', function(info) {
console.log('进度', info.percent) // 进度
})
// 视频上传完成时
uploader.on('media_upload', function(info) {
console.log('上传成功', info) // 进度
})
uploader
.done()
.then(function(doneResult) {
// deal with doneResult
console.log(doneResult)
})
.catch(function(err) {
// deal with error
console.log(err)
});
}
onMounted(() => {});
return {
progress,
status,
getSignature,
fole,
cancel
};
}
};
</script>
更多腾讯云点播上传相关:Web 端上传 SDK
版权声明:本文为qq_39772898原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。