Vue 3 is the latest version of the easy to use Vue JavaScript framework that lets us create front end apps.
In this article, we’ll look at how to create a video player with Vue 3 and JavaScript.
Create the Project
We can create the Vue project with Vue CLI.
To install it, we run:
npm install -g @vue/cli
with NPM or:
yarn global add @vue/cli
with Yarn.
Then we run:
vue create video-player
and select all the default options to create the project.
Create the Video Player
We can create the video player by writing:
<template>
<video width="320" height="240" ref="videoPlayer">
<source
src="https://www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4"
type="video/mp4"
/>
Your browser does not support the video tag.
</video>
<div>
<button @click="play">play</button>
<button @click="pause">pause</button>
<button @click="stop">stop</button>
<button @click="setSpeed(0.5)">0.5x</button>
<button @click="setSpeed(1)">1x</button>
<button @click="setSpeed(1.5)">1.5x</button>
<button @click="setSpeed(2)">2x</button>
</div>
</template>
<script>
export default {
name: "App",
methods: {
play() {
this.$refs.videoPlayer.play();
},
pause() {
this.$refs.videoPlayer.pause();
},
stop() {
const { videoPlayer } = this.$refs;
videoPlayer.pause();
videoPlayer.currentTime = 0;
},
setSpeed(speed) {
this.$refs.videoPlayer.playbackRate = speed;
},
},
};
</script>
We have the video
element with a ref
assigned to it.
width
and height
sets the dimensions of the video.
The source
element has the video source.
We set it to the URL to an MP4 clip that we want to play.
Below that, we add buttons to let us play, pause, and stop the video.
We also have buttons that let us change the playback speed.
Then below that, we add some methods that are called when we click on buttons.
The play
method lets us play the video by getting the videoPlayer
ref with this.$refs.videoPlayer
and calling the play
method on the returned video element.
The pause
method is similar. We get the videoPlayer
ref which has the element and call pause
on it to pause the video.
A video element has no method to stop a video. But we can implement that by pausing it and resetting the currentTime
to 0.
To set the speed of the video, we can set the playbackRate
property.
0.5 is half the normal speed.
And anything above 1 is faster than normal speed.
Conclusion
We can add a video player easily into our web app with Vue 3 and JavaScript.