Skin videojs

Par intelligid, il y a 9 ans


Bonjour,

Voila je veux faire un skin genre youtube pour videoJs et j'ai téléchargé celui de videoJs SKin Generator. J'utilise VueJs avec Webpack.

Ce que je fais

<template> <video id="video" class="video-js vjs-default-skin" width="1000" controls data-setup='{}'> <source src="https://vjs.zencdn.net/v/oceans.mp4?sd" type='video/mp4' label='SD' res='480'/> <source src="https://vjs.zencdn.net/v/oceans.mp4?hd" type='video/mp4' label='HD' res='1080'/> <source src="https://vjs.zencdn.net/v/oceans.mp4?phone" type='video/mp4' label='phone' res='144'/> <source src="https://vjs.zencdn.net/v/oceans.mp4?4k" type='video/mp4' label='4k' res='2160'/> <slot></slot> <p class="vjs-no-js"> To view this video please enable JavaScript, and consider upgrading to a web browser that <a href="http://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a> </p> </video> <!-- <video id="my_video_1" class="video-js vjs-default-skin" width="640px" height="267px" controls preload="none" poster='http://video-js.zencoder.com/oceans-clip.jpg' data-setup='{ "aspectRatio":"640:267", "playbackRates": [1, 1.5, 2] }'> <slot></slot> <p class="vjs-no-js"> To view this video please enable JavaScript, and consider upgrading to a web browser that <a href="http://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a> </p> </video> --> </template> <style> .video-js .vjs-menu-button-inline.vjs-slider-active, .video-js .vjs-menu-button-inline:focus, .video-js .vjs-menu-button-inline:hover, .video-js.vjs-no-flex .vjs-menu-button-inline { width: 10em } .video-js .vjs-controls-disabled .vjs-big-play-button { display: none !important } .video-js .vjs-control { width: 3em } .video-js .vjs-menu-button-inline:before { width: 1.5em } .vjs-menu-button-inline .vjs-menu { left: 3em } .video-js.vjs-paused .vjs-big-play-button, .vjs-paused.vjs-has-started.video-js .vjs-big-play-button { display: block } .video-js .vjs-load-progress div, .vjs-seeking .vjs-big-play-button, .vjs-waiting .vjs-big-play-button { display: none !important } .video-js .vjs-mouse-display:after, .video-js .vjs-play-progress:after { padding: 0 .4em .3em } .video-js.vjs-ended .vjs-loading-spinner { display: none } .video-js.vjs-ended .vjs-big-play-button { display: block !important } .video-js *, .video-js:after, .video-js:before { box-sizing: inherit; font-size: inherit; color: inherit; line-height: inherit } .video-js.vjs-fullscreen, .video-js.vjs-fullscreen .vjs-tech { width: 100% !important; height: 100% !important } .video-js { font-size: 14px; overflow: hidden } .video-js .vjs-control { color: inherit } .video-js .vjs-menu-button-inline:hover, .video-js.vjs-no-flex .vjs-menu-button-inline { width: 8.35em } .video-js .vjs-volume-menu-button.vjs-volume-menu-button-horizontal:hover .vjs-menu .vjs-menu-content { height: 3em; width: 6.35em } .video-js .vjs-control:focus:before, .video-js .vjs-control:hover:before { text-shadow: 0 0 1em #fff, 0 0 1em #fff, 0 0 1em #fff } .video-js .vjs-spacer, .video-js .vjs-time-control { display: -webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex; -webkit-box-flex: 1 1 auto; -moz-box-flex: 1 1 auto; -webkit-flex: 1 1 auto; -ms-flex: 1 1 auto; flex: 1 1 auto } .video-js .vjs-time-control { -webkit-box-flex: 0 1 auto; -moz-box-flex: 0 1 auto; -webkit-flex: 0 1 auto; -ms-flex: 0 1 auto; flex: 0 1 auto; width: auto } .video-js .vjs-time-control.vjs-time-divider { width: 14px } .video-js .vjs-time-control.vjs-time-divider div { width: 100%; text-align: center } .video-js .vjs-time-control.vjs-current-time { margin-left: 1em } .video-js .vjs-time-control .vjs-current-time-display, .video-js .vjs-time-control .vjs-duration-display { width: 100% } .video-js .vjs-time-control .vjs-current-time-display { text-align: right } .video-js .vjs-time-control .vjs-duration-display { text-align: left } .video-js .vjs-play-progress:before, .video-js .vjs-progress-control .vjs-play-progress:before, .video-js .vjs-remaining-time, .video-js .vjs-volume-level:after, .video-js .vjs-volume-level:before, .video-js.vjs-live .vjs-time-control.vjs-current-time, .video-js.vjs-live .vjs-time-control.vjs-duration, .video-js.vjs-live .vjs-time-control.vjs-time-divider, .video-js.vjs-no-flex .vjs-time-control.vjs-remaining-time { display: none } .video-js.vjs-no-flex .vjs-time-control { display: table-cell; width: 4em } .video-js .vjs-progress-control { position: absolute; left: 0; right: 0; width: 100%; height: .5em; top: -.5em } .video-js .vjs-progress-control .vjs-load-progress, .video-js .vjs-progress-control .vjs-play-progress, .video-js .vjs-progress-control .vjs-progress-holder { height: 100% } .video-js .vjs-progress-control .vjs-progress-holder { margin: 0 } .video-js .vjs-progress-control:hover { height: 1.5em; top: -1.5em } .video-js .vjs-control-bar { -webkit-transition: -webkit-transform .1s ease 0s; -moz-transition: -moz-transform .1s ease 0s; -ms-transition: -ms-transform .1s ease 0s; -o-transition: -o-transform .1s ease 0s; transition: transform .1s ease 0s } .video-js.not-hover.vjs-has-started.vjs-paused.vjs-user-active .vjs-control-bar, .video-js.not-hover.vjs-has-started.vjs-paused.vjs-user-inactive .vjs-control-bar, .video-js.not-hover.vjs-has-started.vjs-playing.vjs-user-active .vjs-control-bar, .video-js.not-hover.vjs-has-started.vjs-playing.vjs-user-inactive .vjs-control-bar, .video-js.vjs-has-started.vjs-playing.vjs-user-inactive .vjs-control-bar { visibility: visible; opacity: 1; -webkit-backface-visibility: hidden; -webkit-transform: translateY(3em); -moz-transform: translateY(3em); -ms-transform: translateY(3em); -o-transform: translateY(3em); transform: translateY(3em); -webkit-transition: -webkit-transform 1s ease 0s; -moz-transition: -moz-transform 1s ease 0s; -ms-transition: -ms-transform 1s ease 0s; -o-transition: -o-transform 1s ease 0s; transition: transform 1s ease 0s } .video-js.not-hover.vjs-has-started.vjs-paused.vjs-user-active .vjs-progress-control, .video-js.not-hover.vjs-has-started.vjs-paused.vjs-user-inactive .vjs-progress-control, .video-js.not-hover.vjs-has-started.vjs-playing.vjs-user-active .vjs-progress-control, .video-js.not-hover.vjs-has-started.vjs-playing.vjs-user-inactive .vjs-progress-control, .video-js.vjs-has-started.vjs-playing.vjs-user-inactive .vjs-progress-control { height: .25em; top: -.25em; pointer-events: none; -webkit-transition: height 1s, top 1s; -moz-transition: height 1s, top 1s; -ms-transition: height 1s, top 1s; -o-transition: height 1s, top 1s; transition: height 1s, top 1s } .video-js.not-hover.vjs-has-started.vjs-paused.vjs-user-active.vjs-fullscreen .vjs-progress-control, .video-js.not-hover.vjs-has-started.vjs-paused.vjs-user-inactive.vjs-fullscreen .vjs-progress-control, .video-js.not-hover.vjs-has-started.vjs-playing.vjs-user-active.vjs-fullscreen .vjs-progress-control, .video-js.not-hover.vjs-has-started.vjs-playing.vjs-user-inactive.vjs-fullscreen .vjs-progress-control, .video-js.vjs-has-started.vjs-playing.vjs-user-inactive.vjs-fullscreen .vjs-progress-control { opacity: 0; -webkit-transition: opacity 1s ease 1s; -moz-transition: opacity 1s ease 1s; -ms-transition: opacity 1s ease 1s; -o-transition: opacity 1s ease 1s; transition: opacity 1s ease 1s } .video-js.vjs-live .vjs-live-control { margin-left: 1em } .video-js .vjs-big-play-button { top: 50%; left: 50%; margin-left: -1em; width: 2em; border: none; color: #fff; -webkit-transition: border-color .4s, outline .4s, background-color .4s; -moz-transition: border-color .4s, outline .4s, background-color .4s; -ms-transition: border-color .4s, outline .4s, background-color .4s; -o-transition: border-color .4s, outline .4s, background-color .4s; transition: border-color .4s, outline .4s, background-color .4s; background-color: rgba(0, 0, 0, .5); font-size: 2.5em; border-radius: 20%; height: 1.4em !important; line-height: 1.4em !important; margin-top: -.7em !important } .video-js .vjs-menu-button-popup .vjs-menu { left: -3em } .video-js .vjs-menu-button-popup .vjs-menu .vjs-menu-content { background-color: transparent; width: 12em; left: -1.5em; padding-bottom: .5em } .video-js .vjs-menu-button-popup .vjs-menu .vjs-menu-item, .video-js .vjs-menu-button-popup .vjs-menu .vjs-menu-title { background-color: #151b17; margin: .3em 0; padding: .5em; border-radius: .3em } .video-js .vjs-menu-button-popup .vjs-menu .vjs-menu-item.vjs-selected { background-color: #2483d5 } .video-js .vjs-big-play-button:active, .video-js .vjs-big-play-button:focus, .video-js:hover .vjs-big-play-button { background-color: #cc181e } .video-js .vjs-loading-spinner { border-color: #cc181e } .video-js .vjs-control-bar2 { background-color: #000 } .video-js .vjs-control-bar { background-color: rgba(0, 0, 0, .3) !important; color: #fff; font-size: 12px } .video-js .vjs-play-progress, .video-js .vjs-volume-level { background-color: #cc181e } .video-js .vjs-load-progress { background: rgba(255, 255, 255, .3) } </style> <script> import videojs from 'video.js' import 'video.js/dist/video-js.css' import 'videojs-resolution-switcher' import 'videojs-resolution-switcher/lib/videojs-resolution-switcher.css' // import 'videojs-select-subtitle' // import 'videojs-ass' // import 'videojs-contrib-hls' // import 'videojs-qualityselector' // import 'videojs-contextmenu' // import 'videojs-contextmenu-ui' // import 'videojs-contextmenu-ui/dist/videojs-contextmenu-ui.css' // import 'videojs-framebyframe' // import 'videojs-errors' // import 'videojs-errors/dist/videojs-errors.css' videojs.addLanguage('fr', { 'Play': 'Lecture', 'Pause': 'Pause', 'Current Time': 'Temps actuel', 'Duration Time': 'Durée', 'Remaining Time': 'Temps restant', 'Stream Type': 'Type de flux', 'LIVE': 'EN DIRECT', 'Loaded': 'Chargé', 'Progress': 'Progression', 'Fullscreen': 'Plein écran', 'Non-Fullscreen': 'Fenêtré', 'Mute': 'Sourdine', 'Unmute': 'Son activé', 'Playback Rate': 'Vitesse de lecture', 'Subtitles': 'Sous-titres', 'subtitles off': 'Sous-titres désactivés', 'Captions': 'Sous-titres', 'captions off': 'Sous-titres désactivés', 'Chapters': 'Chapitres', 'You aborted the media playback': 'Vous avez interrompu la lecture de la vidéo.', 'A network error caused the media download to fail part-way.': 'Une erreur de réseau a interrompu le téléchargement de la vidéo.', 'The media could not be loaded, either because the server or network failed or because the format is not supported.': 'Cette vidéo n\'a pas pu être chargée, soit parce que le serveur ou le réseau a échoué ou parce que le format n\'est pas reconnu.', 'The media playback was aborted due to a corruption problem or because the media used features your browser did not support.': 'La lecture de la vidéo a été interrompue à cause d\'un problème de corruption ou parce que la vidéo utilise des fonctionnalités non prises en charge par votre navigateur.', 'No compatible source was found for this media.': 'Aucune source compatible n\'a été trouvée pour cette vidéo.' }) export default { name: 'videojs', props: ['src'], data () { return { msg: 'hello vue' } }, mounted () { let player = videojs(this.$el, {}) /* player.contextmenu() player.contextmenuUI({ content: [{ href: 'https://www.brightcove.com/', label: 'Brightcove' }, { label: 'Example Link', listener: function () { console.log('you clicked the example link!') } }] }) player.selectSubtitle({ trackLanguage: 'es' }) */ player.videoJsResolutionSwitcher({ default: 'low' }) } } </script>

Ce que je veux

http://codepen.io/anon/pen/wgGBWP

Ce que j'obtiens

J'obtiens un truc degueu:
http://pix.toile-libre.org/upload/original/1484158767.png

Alors que c'est le même CSS :( Je bosse dessus deouis 3h et j'en ai marre.

Merci

Aucune réponse