@voltra/vue-player
Version:
A Vue port of react-player: components for playing a variety of URLs including file paths, YouTube, Facebook, Twitch, SoundCloud, Streamable, Vimeo, Wistia, DailyMotion
129 lines (115 loc) • 3.93 kB
JavaScript
import { AUDIO_EXTENSIONS, canPlay } from "./patterns";
import { supportsWebKitPresentationMode } from "./utils";
export const players = [
/**
* @type {PlayerDecl<"youtube", "YouTube", import("./components/players/YouTubePlayer.vue").default>}
*/
{
key: 'youtube',
name: 'YouTube',
canPlay: canPlay.youtube,
lazyPlayer: () => import(/* webpackChunkName: 'vuePlayerYouTube' */"./components/players/YouTubePlayer.vue")
},
/**
* @type {PlayerDecl<"soundcloud", "SoundCloud", import("./components/players/SoundCloudPlayer.vue").default>}
*/
{
key: 'soundcloud',
name: 'SoundCloud',
canPlay: canPlay.soundcloud,
lazyPlayer: () => import(/* webpackChunkName: 'vuePlayerSoundCloud' */"./components/players/SoundCloudPlayer.vue")
},
/**
* @type {PlayerDecl<"vimeo", "Vimeo", import("./components/players/VimeoPlayer.vue").default>}
*/
{
key: 'vimeo',
name: 'Vimeo',
canPlay: canPlay.vimeo,
lazyPlayer: () => import(/* webpackChunkName: 'vuePlayerVimeo' */"./components/players/VimeoPlayer.vue")
},
/**
* @type {PlayerDecl<"facebook", "Facebook", import("./components/players/FacebookPlayer.vue").default>}
*/
{
key: 'facebook',
name: 'Facebook',
canPlay: canPlay.facebook,
lazyPlayer: () => import(/* webpackChunkName: 'vuePlayerFacebook' */"./components/players/FacebookPlayer.vue")
},
/**
* @type {PlayerDecl<"streamable", "Streamable", import("./components/players/StreamablePlayer.vue").default>}
*/
{
key: 'streamable',
name: 'Streamable',
canPlay: canPlay.streamable,
lazyPlayer: () => import(/* webpackChunkName: 'vuePlayerStreamable' */"./components/players/StreamablePlayer.vue")
},
/**
* @type {PlayerDecl<"wistia", "Wistia", import("./components/players/WistiaPlayer.vue").default>}
*/
{
key: 'wistia',
name: 'Wistia',
canPlay: canPlay.wistia,
lazyPlayer: () => import(/* webpackChunkName: 'vuePlayerWistia' */"./components/players/WistiaPlayer.vue")
},
/**
* @type {PlayerDecl<"twitch", "Twitch", import("./components/players/TwitchPlayer.vue").default>}
*/
{
key: 'twitch',
name: 'Twitch',
canPlay: canPlay.twitch,
lazyPlayer: () => import(/* webpackChunkName: 'vuePlayerTwitch' */"./components/players/TwitchPlayer.vue")
},
/**
* @type {PlayerDecl<"dailymotion", "DailyMotion", import("./components/players/DailyMotionPlayer.vue").default>}
*/
{
key: 'dailymotion',
name: 'DailyMotion',
canPlay: canPlay.dailymotion,
lazyPlayer: () => import(/* webpackChunkName: 'vuePlayerDailyMotion' */"./components/players/DailyMotionPlayer.vue")
},
/**
* @type {PlayerDecl<"mixcloud", "Mixcloud", import("./components/players/MixcloudPlayer.vue").default>}
*/
{
key: 'mixcloud',
name: 'Mixcloud',
canPlay: canPlay.mixcloud,
lazyPlayer: () => import(/* webpackChunkName: 'vuePlayerMixcloud' */"./components/players/MixcloudPlayer.vue")
},
/**
* @type {PlayerDecl<"vidyard", "Vidyard", import("./components/players/VidyardPlayer.vue").default>}
*/
{
key: 'vidyard',
name: 'Vidyard',
canPlay: canPlay.vidyard,
lazyPlayer: () => import(/* webpackChunkName: 'vuePlayerVidyard' */"./components/players/VidyardPlayer.vue")
},
/**
* @type {PlayerDecl<"kaltura", "Kaltura", import("./components/players/KalturaPlayer.vue").default>}
*/
{
key: 'kaltura',
name: 'Kaltura',
canPlay: canPlay.kaltura,
lazyPlayer: () => import(/* webpackChunkName: 'vuePlayerKaltura' */"./components/players/KalturaPlayer.vue")
},
/**
* @type {PlayerDecl<"file", "FilePlayer", import("./components/players/FilePlayer.vue").default>}
*/
{
key: 'file',
name: 'FilePlayer',
canPlay: canPlay.file,
canEnablePIP: url => {
return canPlay.file(url) && (document.pictureInPictureEnabled || supportsWebKitPresentationMode()) && !AUDIO_EXTENSIONS.test(url)
},
lazyPlayer: () => import(/* webpackChunkName: 'vuePlayerFilePlayer' */"./components/players/FilePlayer.vue")
}
];