A React video component based on Plyr.
Installation
Add
react-plyr
into your package.json dependencies:A vue component for the plyr video & audio player. I just update the version of plyr - 6.0.5 - a JavaScript package on npm - Libraries.io. MIT Repository Bugs Original npm Tarball package.json $ cnpm install plyr. SYNC missed versions from official npm registry. Plyr is a simple. The easiest way to access the Plyr object is to set the return value from your call to the constructor to a variable. For example: const player = new Plyr('#player',.
CSS
Plyr Npm React
![Vue-plyr npm Vue-plyr npm](https://vuejsexamples.com/content/images/2018/04/plyr-video.jpg)
If you want to use our CDN (provided by Fastly) for the default CSS, you can use the following:
Usage
Simple Youtube or Vimeo video
Note: The
videoId
can either be the video ID or URL for the media.Props
Prop | Default | |
---|---|---|
enable | Disable | true |
title | Custom media title | ' |
debug | Logging to console | false |
autoplay | Auto play (if supported) | false |
autopause | Only allow one media playing at once (vimeo only) | true |
seekTime | Default time to skip when rewind/fast forward | 10 |
volume | Default volume | 1 |
muted | Default volume (0) | false |
duration | Pass a custom duration | null |
displayDuration | Display the media duration on load in the current time position If you have opted to display both duration and currentTime, this is ignored | true |
invertTime | Invert the current time to be a countdown | true |
toggleInvert | Clicking the currentTime inverts it's value to show time left rather than elapsed | true |
ratio | Aspect ratio (for embeds) | '16:9' |
clickToPlay | Click video container to play/pause | true |
hideControls | Auto hide the controls | true |
resetOnEnd | Reset to start when playback ended | false |
disableContextMenu | Disable the standard context menu | true |
loadSprite | Sprite (for icons) | true |
iconPrefix | Sprite (for icons) | 'plyr' |
iconUrl | Sprite (for icons) | 'https://cdn.plyr.io/3.3.5/plyr.svg' |
blankVideo | Blank video (used to prevent errors on source change) | 'https://cdn.plyr.io/static/blank.mp4' |
quality | Quality default | { default: 576, options: [ 4320, 2880, 2160, 1440, 1080, 720, 576, 480, 360, 240, 'default' ] } |
loop | Set loops | { loop: { active: false } } |
speed | Speed default and options to display | { selected: 1, options: [ 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2 ] } |
keyboard | Keyboard shortcut settings | { focused: true, global: false } |
tooltips | Display tooltips | { controls: false, seek: true } |
captions | Captions settings | { active: false, language: 'auto', update: false } |
fullscreen | Fullscreen settings | { enabled: true, fallback: true, iosNative: false } |
storage | Local storage | { enabled: true, key: 'plyr' } |
controls | Default controls | [ 'play-large', 'play', 'progress', 'current-time', 'mute', 'volume', 'captions', 'settings', 'pip', 'airplay', 'fullscreen' ] |
settings | [ 'captions', 'quality', 'speed' ] | |
i18n | Localisation | { restart: 'Restart', rewind: 'Rewind {seektime} secs', play: 'Play', pause: 'Pause', fastForward: 'Forward {seektime} secs', seek: 'Seek', played: 'Played', buffered: 'Buffered', currentTime: 'Current time', duration: 'Duration', volume: 'Volume', mute: 'Mute', unmute: 'Unmute', enableCaptions: 'Enable captions', disableCaptions: 'Disable captions', enterFullscreen: 'Enter fullscreen', exitFullscreen: 'Exit fullscreen', frameTitle: 'Player for {title}', captions: 'Captions', settings: 'Settings', speed: 'Speed', normal: 'Normal', quality: 'Quality', loop: 'Loop', start: 'Start', end: 'End', all: 'All', reset: 'Reset', disabled: 'Disabled', enabled: 'Enabled', advertisement: 'Ad' } |
urls | URLs | { vimeo: { sdk: 'https://player.vimeo.com/api/player.js', iframe: 'https://player.vimeo.com/video/{0}?{1}', api: 'https://vimeo.com/api/v2/video/{0}.json' }, youtube: { sdk: 'https://www.youtube.com/iframe_api', api: 'https://www.googleapis.com/youtube/v3/videos?id={0}&key={1}&fields=items(snippet(title))&part=snippet', poster: 'https://img.youtube.com/vi/{0}/maxresdefault.jpg,https://img.youtube.com/vi/{0}/hqdefault.jpg' }, googleIMA: { sdk: 'https://imasdk.googleapis.com/js/sdkloader/ima3.js' } } |
keys | API keys | { google: null } |
ads | Advertisements plugin Register for an account here: http://vi.ai/publisher-video-monetization/ | { enabled: false, publisherId: ', tagUrl: ' } |
tracks | [] |
Support
Please open an issue for support.
Contributing
Please contribute using Github Flow. Create a branch, add commits, and open a pull request.
v6.0.4 - Changelog
A vue component for the plyr video & audio player.
This is useful for when you want a nice video player in your Vue app.
It uses plyr by sampotts v3 for the players.
Supported player types: HTML5 video, HTML5 audio, YouTube (div & progressiveenhancement), and Vimeo (div & progressive enhancement).
Installation
Module
SSR (more below)
Player Npm
For SSR you can import the SSR optimized module, found at
./dist/vue-plyr.ssr.js
.There is a more in depth description on how to use it with nuxt below.![Plyr Plyr](https://cdn.plyr.io/static/demo/screenshot.png?v=3)
Browser
In the browser you can include it as you would any other package: with unpkg.
Usage
Once installed, it can be used in a template as simply as:
Player Instance
To access the player instance, you can use the
refs
attribute.Events
If you want to capture events from the plyr instance, there are a fewoptions:
The preferred method is accessing the player instance through the
ref
attribute and using that object for events, as you would with a vanillaplyr instance.Valid events are here.
The other way is to just pass an array of theevents you want emitted.
Options
For custom options you can pass an
options
prop which is an objectthat will be passed to the new Plyr()
creation. Available optionshere. I added an additionaloption (hideYouTubeDOMError
) that hides the error that is alwayslogged when destroying a YouTube player. It defaults to true
, and youcan disable it and see the error by setting it to false.SSR
Plyr Npm Command
Nuxt
This should support SSR out of the box. For nuxt, create a file called
vue-plyr.js
in your plugins folder containingonly these three statements:React Player Npm
Then, in your
nuxt.config.js
file add '~/plugins/vue-plyr'
to the plugins array. The vue-plyr
element should be globally registered now.You will also want to add
plyr/dist/plyr.css
to your css array in the same file.The
nuxt.config.js
file should at minimum include this:Author
vue-plyr © RedXTech, Released under the MIT License.