Vue可以很方便地獲取video元素,通過使用ref來綁定video元素即可。
<template>
<div>
<video ref="myVideo" src="myVideo.mp4"></video>
</div>
</template>
<script>
export default {
mounted() {
const myVideo = this.$refs.myVideo;
console.log(myVideo); //獲取到的是video元素
}
}
</script>
在mounted鉤子函數中,我們可以使用this.$refs來獲取綁定的元素,這里通過傳入的ref名稱來獲取video元素,然后可以進行一些操作。例如,我們可以設置播放器的currentTime并播放視頻:
<template>
<div>
<video ref="myVideo" src="myVideo.mp4"></video>
</div>
</template>
<script>
export default {
mounted() {
const myVideo = this.$refs.myVideo;
console.log(myVideo.currentTime); //0
myVideo.currentTime = 10; //設置播放10秒
myVideo.play(); //開始播放視頻
}
}
</script>
除了設置currentTime和播放視頻外,我們還可以監聽video的一些事件,例如loadedmetadata、play、pause等。以下是一個監聽video播放事件的例子:
<template>
<div>
<video ref="myVideo" src="myVideo.mp4" @play="onPlay"></video>
</div>
</template>
<script>
export default {
mounted() {
const myVideo = this.$refs.myVideo;
console.log(myVideo.duration); //視頻總時長
},
methods: {
onPlay() {
console.log('播放');
}
}
}
</script>