A video playback component receives the video URL from the parent component and gives this URL to the src of the video tag when the play button is clicked. An error message appears saying that this resource is not available, which seems to be what it means, but when inspecting the element, I find that the src attribute of the video tag already has the desired video address. Below is my code:
<template>
<p id="vedioComponent">
<video id="vdo" webkit-playsinline playsinline controls v-show="isVdoShow" :src="reciveVideoUrl"></video>
<img id="poster" v-show="isPosterShow" :src="posterUrl" alt="">
<img id="loading" v-show="isLoadingShow" src="https://hybrid.xiaoying.tv/web/active/krFAQ/static/imgs/load.gif" alt="">
<img @click="play()" id="playBtn" v-show="isPlayBtnShow" src="https://hybrid.xiaoying.tv/web/active/krFAQ/static/imgs/playBtn.png" alt="">
</p>
</template>
<script>
export default {
props: [ 'videoUrl', 'posterUrl' ],
data () {
return {
isVdoShow: false,
isPosterShow: true,
isLoadingShow: false,
isPlayBtnShow: true,
reciveVideoUrl: ''
}
},
mounted () {
// 给视频容器设置高
var screenW = window.screen.width
document.getElementById('vedioComponent').style.height = screenW + 'px'
// 添加可播放事件
var vdo = document.getElementById('vdo')
vdo.addEventListener('canplay', function () {
console.log(1)
this.isVdoShow = true
this.isLoadingShow = false
this.isPosterShow = false
})
},
methods: {
// 点击播放按钮播放视屏
play: function () {
this.reciveVideoUrl = this.videoUrl // 获取视频url
var vdo = document.getElementById('vdo')
vdo.play()
this.isLoadingShow = true
this.isPlayBtnShow = false
}
}
}
</script>
Here is the error message: Uncaught (in promise) DOMException: The element has no supported sources.
Is this what is the reason
Bind videoUrl directly in video