Vue 3 video player component with subtitle support and theme configuration.
Based on this repo.
- Install the package:
npm install @germingi/vue3-video-player
- Import the component:
import VideoPlayer from "@germingi/vue3-video-player"; import "@germingi/vue3-video-player/style.css";
- Use the component:
<VideoPlayer video-url="https://archive.org/download/BigBuckBunny_124/Content/big_buck_bunny_720p_surround.mp4" />
prop | type | required | notes |
---|---|---|---|
subtitles | see Subtitle props | optional | |
videoHeight | number | optional | height of the video in pixels |
videoWidth | number | optional | width of the video in pixels |
videoUrl | string | required | url to the video |
prop | type | required | notes |
---|---|---|---|
enabled | boolean | required | toggles the subtitle functionality |
deleteFunc | (subtitleId: number) => void | required | deletes the subtitle with the id |
downloadFunc | (subtitleId: number) => void | required | downloads the subtitle with the id |
deselectFunc | (subtitleId: number) => void | required | deselects the subtitle with the id |
selectFunc | (subtitleId: number) => void | required | selects the subtitle with the id |
searchFunc | (searchTerm: string, language: string) => void | required | searches for subtitles |
subtitles | SubtitleInfo[] | required | list of subtitles to display |
cues | SubtitleCue[] | optional | subtitle cues to render |
defaultSearchLanguage | string | optional | the default subtitle search language (default 'en') |
secondSearchLanguage | string | optional | the alternative subtitle search language |
If you're not a fan of the default theme, you can customise it by changing these CSS variables
To see the component in action without installing it, you can use this repo! Here's what you need to do:
- Clone this repo using
git clone
. - Change directory to the newly cloned repo.
- Install the required packages with
npm install
. - Build the component with
npm run build
. - Deploy with
npm run dev
. - Check out the component in the browser of your choice! 😎