irc_web/.svn/pristine/64/64c97d5ca99e59f0e026c55b19d...

105 lines
2.1 KiB
Plaintext

<template>
<div style="width: 100%;height: 100%;position: relative">
<video
v-if="videoSrc"
id="video"
:src="videoSrc"
style="position: relative;z-index: 10;width: 100%;height:calc(100% - 50px)"
controls
crossorigin="anonymous"
/>
<div style="text-align: right">
<el-button size="small" type="primary" @click="jietu">截图</el-button>
</div>
</div>
</template>
<script>
export default {
props: {
videoSrc: {
type: String,
default() {
return ''
}
},
fileName: {
type: String,
default() {
return ''
}
}
},
data() {
return {
isDisabled: false,
imgList: [],
fileObj: null,
videoList: [],
file: null,
dataBuffer: null,
percentage: 0,
isVideoToMp4: false,
isNeedToMp4: false
}
},
watch: {
},
mounted() {
},
methods: {
jietu() {
this.screenShot('video')
},
screenShot(id) {
var player = document.getElementById(id)
console.log(player)
var canvas = document.createElement('canvas')
var img = document.createElement('img')
canvas.width = player.videoWidth
canvas.height = player.videoHeight
canvas.getContext('2d').drawImage(player, 0, 0, canvas.width, canvas.height)
var dataURL = canvas.toDataURL('image/png')
img.src = dataURL
img.width = player.clientWidth
img.height = player.clientHeight
img.style.objectFit = 'contain'
console.log(dataURL)
this.downFile(dataURL, `截图${new Date().getTime()}.png`)
},
downFile(data, fileName) {
var save_link = document.createElementNS(
'http://www.w3.org/1999/xhtml',
'a'
)
save_link.href = data
save_link.download = fileName
var event = document.createEvent('MouseEvents')
event.initMouseEvent(
'click',
true,
false,
window,
0,
0,
0,
0,
0,
false,
false,
false,
false,
0,
null
)
save_link.dispatchEvent(event)
}
}
}
</script>
<style scoped>
</style>