@kkan0615/vue-video-player
v0.0.5-1
Published
Vue 3 video player
Downloads
4
Readme
It's beta version!
vue-video-player
video player made by vue component
Download
NPM
npm i @kkan0615/vue-video-player
YARN
yarn add @kkan0615/vue-video-player
How to use
Global component
import VueVideoPlayer from '@kkan0615/vue-video-player'
import '@kkan0615/vue-video-player/dist/style.css'
const app = createApp(App)
app
.component('VueVideoPlayer', VueVideoPlayer)
.mount('#app')
In component
<script setup lang="ts">
import VueVideoPlayer from '@kkan0615/vue-video-player'
import '@kkan0615/vue-video-player/dist/style.css'
</script>
Props
| Name | Type | Default | Description | |------------------|--------------------|----------------------------------------------|------------------------------| | videoList | video[] (array) | [] | Video list | | height | string | 600px | Video height | | width | string | 600px | Video width | | poster | string | '' | picture url before start | | loop | boolean | false | Loop the video | | initVolume | number | 100 | 0 to 100, first volume size | | initPlaybackRate | number | 1 | 0 to 2, first volume size | | videoObjectFit | object-fit (style) | 1 | object fit style | | subtitleList | Subtitle[] (array) | [] | Subtitle list | | disable | boolean | false | Disable to press any buttons | | playbackRateList | number[] (array) | [0.25, 0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0] | Playback rate list | | labelList | label[] (array) | (Check the README.md) | label(i18n) list | | subtitleClass | string | '' | subtilte class |
label list
{
noVideo: 'No video',
errorPlaying: 'Sorry there are some errors to play the video',
speed: 'speed',
subtitle: 'subtitle',
noSubtitle: 'no subtitle',
pictureInPicture: 'picture in picture',
quality: 'quality',
Copy it and change the values
Slot
| Name | Description | |-----------------------|----------------------------------------------------------------| | prependInnerMenu | front of controller panel | | appendInnerMenu | back controller panel | | betweenPlayAndVolume | between play and volume button (usually for next video button) | | prependSettingContend | front of setting content list item | | appendSettingContend | back of setting content list item | | errorContainer | Error container |
Key event
| Key | Description | |------------|---------------| | space | Play or pause | | ArrowRight | move forward | | ArrowLeft | move backward | | ArrowUp | volume up | | ArrowDown | volume down |
Note
The event is added at window
Types
Video
| Key | Type | Description | Example | |---------|---------|---------------------|------------------------| | src | string | url | https://www.sample.com | | type | string | type of video | video/mp4 | | label | string | label | label | | quality | number | quality | 720px | | default | boolean | is it default video | true |
Note
Please use url not from local directory
Subtitle
| Key | Type | Description | Example | |------------|---------|------------------------|------------------------| | src | string | url | https://www.sample.com | | srclang | string | language | en | | default | boolean | is it default subtitle | true | | label | string | label | label | | kind | string | mostly use subtitle | subtitle |
Note
Please use url not from local directory
Object fit
- contain – the video will be scaled to fit the container while preserving the aspect ratio, letterboxing will be present around the video
- cover – the video is scaled to fill the container while preserving the aspect ratio, the video will be clipped
- fill – the video is scaled to fill the container without preserving the aspect ratio, the video will be stretched
- none – video is not resized
How to add more list item in setting menu
<template
#prependSettingContend
>
<li
class="vue-video-player-drop-menu-content-list-item"
@click="someFunc()"
>
<!-- icon part -->
<div
class="vue-video-player-drop-menu-content-list-item--icon"
>
<m-picture-in-picture-icon
:size="18"
/>
</div>
<!-- label part -->
<div
class="vue-video-player-drop-menu-content-title-container--title"
>
some label
</div>
</li>
</template>
Note
Sorry, We don't support to additional list item like quality and subtitle menu. We plan to update it later!
Customizing
Styles
@import '@kkan0615/vue-video-player/dist/style.css'
Support me
What we do next?
Hide pip mode with following code
if (!('pictureInPictureEnabled' in document)) {
pipButton.classList.add('hidden');
}