<iframe width="640" height="360" src="https://www.youtube.com/embed/CyVuYAHiZb8" frameborder="0" allowfullscreen></iframe>
<!DOCTYPE html> <html> <head> <script src="http://code.jquery.com/jquery-1.8.3.js"></script> <!-- jQuery --> <script src="https://www.youtube.com/iframe_api"></script> <!-- iframe_api--> <link rel='stylesheet' id='fortunato-style-css' href='http://your.styles.css' type='text/css' media='' /> <!-- ( css )--> </head> <body> <div class="panel"> <button id="back" onclick="player.previousVideo();">Back</button> <button id="play" onclick="player.playVideo();">Play</button> <button id="pause" onclick="player.pauseVideo();">Pause</button> <button id="next" onclick="player.nextVideo();">Next</button> <div id="time">00:00</div> <div id="line" onclick="progress (event);"> <div class="viewed"></div> <div id="fader" onclick="alert('fader');"></div> </div> <button id="volume" onclick="editVolume ();"></button> <div id="quality">Auto</div> <button id="full" onclick="playFullscreen ();">FullScreen</button> </div> <div> <button id="playlist" onclick="loadPlaylistVideoIds();">Load New Playlist</button> <button id="qual" onclick="editQuality ();"> 480</button> </div> </body> </html>
body { margin: 0; } .panel { width: 850px; height: 40px; background: grey; margin-top: -5px; border: 1px solid #aaa; } #play, #back, #next, #pause{ float: left; width: 50px; height: 40px; } #time{ float: left; width: 50px; height: 40px; color: #fff; padding-top: 10px; margin-left: 10px; } #line{ margin-top: 15px; height: 4px; width: 350px; background: #fff; float: left; margin-right: 15px; } #volume { float: left; width: 80px; height: 40px; } #quality{ float: left; width: 50px; height: 40px; color: #fff; padding-top: 10px; margin-left: 10px; } #full { float: left; width: 75px; height: 40px; } #fader { background: black; border-radius: 5px; width: 10px; height: 10px; position: relative; z-index: 4; bottom: 3px; } #playlist { margin-top: 20px; } .viewed { position: absolute; background: red; height: 4px; }
<div id="player"></div>
// function onYouTubeIframeAPIReady() { player = new YT.Player('player', { height: '500', playerVars: { 'autoplay': 0, 'controls': 0, 'showinfo': 0, 'rel': 0}, width: '850', videoId: 'CyVuYAHiZb8', events: { 'onReady': onPlayerReady } }); } // function onPlayerReady(event) { var player = event.target; iframe = document.getElementById('player'); setupListener(); updateTimerDisplay(); updateProgressBar(); time_update_interval = setInterval(function () { updateTimerDisplay(); updateProgressBar(); }, 1000); } /* */ function setupListener (){ document.getElementById('full').addEventListener('click', playFullscreen); } /* */ function playFullscreen (){ player.playVideo();//won't work on mobile var requestFullScreen = iframe.requestFullScreen || iframe.mozRequestFullScreen || iframe.webkitRequestFullScreen; if (requestFullScreen) { requestFullScreen.bind(iframe)(); } } /* */ function loadPlaylistVideoIds(); { player.loadPlaylist({ 'playlist': ['9HPiBJBCOq8', 'Mp4D0oHEnjc', '8y1D8KGtHfQ', 'jEEF_50sBrI'], 'listType': 'playlist', 'index': 0, 'startSeconds': 0, 'suggestedQuality': 'small' }); } /**/ function editVolume () { if (player.getVolume() == 0) { player.setVolume('100'); } else { player.setVolume('0'); } } /**/ function editQuality () { player.setPlaybackQuality('medium'); document.getElementById('quality').innerHTML = '480'; } // - function updateTimerDisplay(){ document.getElementById('time').innerHTML = formatTime(player.getCurrentTime()); } /* */ function formatTime(time){ time = Math.round(time); var minutes = Math.floor(time / 60), seconds = time - minutes * 60; seconds = seconds < 10 ? '0' + seconds : seconds; return minutes + ":" + seconds; } // function updateProgressBar(){ var line_width = jQuery('#line').width(); var persent = (player.getCurrentTime() / player.getDuration()); jQuery('.viewed').css('width', persent * line_width); per = persent * 100; jQuery('#fader').css('left', per+'%'); } /* */ function progress (event) { var line_width = jQuery('#line').width(); // var pos = jQuery('#line').offset(); var elem_left = pos.left; // var Xinner = event.pageX - elem_left; var newTime = player.getDuration() * (Xinner / line_width); // Skip video to new time. player.seekTo(newTime); }
// function onYouTubeIframeAPIReady() { player = new YT.Player('player', { height: '500', playerVars: { 'autoplay': 0, 'controls': 0, 'showinfo': 0, 'rel': 0}, width: '850', videoId: 'CyVuYAHiZb8', events: { 'onReady': onPlayerReady } }); }
<div id="player"></div>
to which at initialization iframe clings. Further, height and width - iframe, videoId dimensions: 'CyVuYAHiZb8' - the video identifier is our Ray Charles. playerVars: {'autoplay': 0, 'controls': 0, 'showinfo': 0, 'rel': 0} are the player settings, they speak for themselves - cost zeroes to turn off the controls we make our own. <div class="panel"> <button id="back" onclick="player.previousVideo();">Back</button> <button id="play" onclick="player.playVideo();">Play</button> <button id="pause" onclick="player.pauseVideo();">Pause</button> <button id="next" onclick="player.nextVideo();">Next</button> <div id="time">00:00</div> <div id="line" onclick="progress (event);"> <div class="viewed"></div> <div id="fader" ></div> </div> <button id="volume" onclick="editVolume ();"></button> <div id="quality">Auto</div> <button id="full" onclick="playFullscreen ();">FullScreen</button> </div> <div> <button id="playlist" onclick="loadPlaylistVideoIds();">Load New Playlist</button> <button id="qual" onclick="editQuality ();"> 480</button> </div>
<button id="play" onclick="player.playVideo();">Play</button>
- play <button id="pause" onclick="player.pauseVideo();">Pause</button>
- pause <button id="back" onclick="player.previousVideo();">Back</button> <button id="next" onclick="player.nextVideo();">Next</button>
<button id="playlist" onclick="loadPlaylistVideoIds();">Load New Playlist</button>
- which calls the function on click. function loadPlaylistVideoIds(); { player.loadPlaylist({ 'playlist': ['9HPiBJBCOq8', 'Mp4D0oHEnjc', '8y1D8KGtHfQ', 'jEEF_50sBrI'], 'listType': 'playlist', 'index': 0, 'startSeconds': 0, 'suggestedQuality': 'small' }); }
<button id="volume" onclick="editVolume ();"></button>
- when pressed, turns on or cuts down the sound Used methods by analogy: /**/ function editVolume () { if (player.getVolume() == 0) { player.setVolume('100'); } else { player.setVolume('0'); } }
<button id="qual" onclick="editQuality ();"> 480</button>
/**/ function editQuality () { player.setPlaybackQuality('medium'); document.getElementById('quality').innerHTML = '480'; }
<button id="full" onclick="playFullscreen ();">FullScreen</button>
function playFullscreen (){ player.playVideo(); var requestFullScreen = iframe.requestFullScreen || iframe.mozRequestFullScreen || iframe.webkitRequestFullScreen; if (requestFullScreen) { requestFullScreen.bind(iframe)(); } }
Source: https://habr.com/ru/post/306726/
All Articles