MissnationBlazor/MissNationSharedUI/wwwroot/assets/vendor/YTPlayer/index.html

518 lines
18 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<!--
jquery.mb.components
file: index.tmpl
last modified: 05/01/16 17.43
Open Lab s.r.l., Florence - Italy
email: matteo@open-lab.com
site: http://pupunzi.com
http://open-lab.com
blog: http://pupunzi.open-lab.com
Q&A: http://jquery.pupunzi.com
Licences: MIT, GPL
http://www.opensource.org/licenses/mit-license.php
http://www.gnu.org/licenses/gpl.html
Copyright (c) 2001-2016. Matteo Bicocchi (Pupunzi);
-->
<html>
<head>
<meta charset="UTF-8">
<title>youtube Chromeless Player - mb.YTPlayer</title>
<link href='http://fonts.googleapis.com/css?family=Lekton|Lobster' rel='stylesheet' type='text/css'>
<link href="css/jquery.mb.YTPlayer.min.css?_bn=6250" media="all" rel="stylesheet" type="text/css">
<script src="https://code.jquery.com/jquery-3.0.0.min.js"></script>
<script src="jquery.mb.YTPlayer.js?_bn=6250"></script>
<script src="../examples/assets/apikey.js"></script>
<style>
*:focus {
outline: none;
}
body {
border: none;
margin: 0;
padding: 30px;
background: #222c2f;
font: normal 16px/20px Lekton, sans-serif;
}
h1 {
text-align: center;
font-size: 50px;
font-family: 'Lobster', cursive;
}
h1,
h2 {
font-family: 'Lobster', cursive;
text-shadow: 10px 10px 20px rgba(0, 0, 0, 0.30);
color: #000000;
font-weight: 200;
}
h2 {
font-family: "Open Sans", sans-serif;
font-size: 35px;
text-align: left;
line-height: 1.4;
}
#wrapper {
position: relative;
min-width: 1280px;
}
.console {
margin-top: 70px;
text-align: center;
}
#debug {
position: absolute;
width: 450px;
padding: 5px;
height: 100%;
top: 0;
right: 0;
background: rgba(0, 0, 0, .8);
overflow: auto;
color: #fff;
font-size: 13px;
z-index: 10000;
}
.dida {
color: #fff;
font-size: 20px;
margin-top: 20px;
}
button,
.button {
transition: all .4s;
display: inline-block;
padding: 0px 10px;
font-size: 12px;
text-transform: uppercase;
cursor: pointer;
background-color: rgba(248, 248, 248, 0.4);
box-shadow: 0 0 4px rgba(0, 0, 0, 0.4);
color: #000;
border: 1px solid transparent;
text-decoration: none;
line-height: 30px;
margin: 3px;
border-radius: 10px;
}
button:hover,
.button:hover {
background-color: rgb(0, 0, 0);
color: #FFF;
}
#togglePlay {
margin-top: 20px;
font-size: 20px;
width: 100px;
height: 100px;
line-height: 70px;
border-radius: 100%;
}
#togglePlay.pause {
background-color: rgb(0, 0, 0);
color: #fff;
}
#togglePlay.pause:hover {
background-color: #fff;
color: #333;
}
#togglePlay.play {
background-color: #fff;
color: #333;
}
#togglePlay.play:hover {
background-color: rgb(0, 0, 0);
color: #fff;
}
.goto {
position: absolute;
left: 0;
top: 360px;
right: 0;
margin: auto;
text-align: center;
width: 100%;
height: 50px;
}
.goto .button {
font-size: 30px;
font-family: 'Lobster', cursive;
padding: 10px;
text-transform: none;
}
#filtersControl {
position: absolute;
top: 0;
left: 10px;
width: 350px;
margin: 30px auto;
z-index: 1000;
}
#changeVideo {
position: absolute;
top: 0;
right: 10px;
width: 350px;
margin: 30px auto;
z-index: 100;
padding: 10px;
/*background-color: rgba(25, 34, 37, 0.35);*/
border-radius: 10px;
color: #FFFFFF;
box-sizing: border-box;
}
#changeVideo label {
padding: 10px;
display: block;
}
#changeVideo input {
padding: 10px;
display: block;
width: 250px;
border-radius: 10px;
border: none;
font-size: 20px;
color: #fff;
font-weight: 700;
background-color: rgba(168, 168, 168, 0.20);
}
#changeVideo input[type=number] {
display: inline-block;
width: 100px;
}
#changeVideo input[type=checkbox] {
display: inline-block;
width: 20px;
}
#loadBox {
background-color: rgba(168, 168, 168, 0.20);
border-radius: 10px;
padding: 20px;
}
/*Slider START ************************************************/
#filterScript {
margin-top: 20px;
padding: 10px;
background-color: rgba(25, 34, 37, 0.35);
color: #fff;
border-radius: 10px;
}
.slider {
position: relative;
width: 100%;
height: 25px;
border: 0 solid transparent;
background-color: rgba(255, 255, 255, 0.20);
border-radius: 4px;
margin-top: 10px;
overflow: hidden;
}
.slider .level {
background-color: rgba(255, 255, 255, 0.80);
height: 100%;
}
.slider .desc {
position: absolute;
right: 0;
top: 0;
padding: 5px;
font-size: 12px;
line-height: 18px;
color: #222222;
}
.slider span {
font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;
/*text-transform: uppercase;*/
position: absolute;
top: 0;
font-size: 12px;
line-height: 18px;
color: #222222;
padding: 4px;
text-align: left;
width: 100%;
box-sizing: border-box;
}
/*Slider END ************************************************/
</style>
<script>
var isIframe = function() {
var a = !1;
try {
self.location.href != top.location.href && ( a = !0 )
} catch ( b ) {
a = !0
}
return a
};
jQuery( function() {
if ( !isIframe() ) {
var logo = $( "<a href='http://pupunzi.com/#mb.components/components.html' style='position:absolute;top:0;z-index:1000'><img id='logo' border='0' src='http://pupunzi.com/images/logo.png' alt='mb.ideas.repository'></a>" );
$( "#wrapper" ).prepend( logo ), $( "#logo" ).fadeIn()
}
var should_remember = $.mbCookie.get( "YTP_should_remember" );
if ( should_remember )
$( "#should_remember" ).attr( "checked", "checked" );
$( "#should_remember" ).on( "change", function() {
if ( $( this ).is( ":checked" ) ) {
$.mbCookie.set( "YTP_should_remember", "true", 1 );
} else {
$.mbCookie.remove( "YTP_should_remember" );
}
} );
var myPlayer = jQuery( "#bgndVideo" ).YTPlayer( {
remember_last_time: should_remember,
onReady: function( player ) {
YTPConsole.append( player.id + " player is ready" );
YTPConsole.append( "<br>" );
}
} );
myPlayer.on( "YTPData", function( e ) {
$( ".dida" ).html( e.prop.title + "<br>@" + e.prop.channelTitle );
$( "#videoData" ).show();
} );
/* DEBUG ******************************************************************************************/
var YTPConsole = jQuery( "#eventListener" );
// EVENT: YTPStart YTPEnd YTPLoop YTPPause YTPBuffering
myPlayer.on( "YTPStart YTPEnd YTPLoop YTPPause YTPBuffering YTPMuted YTPUnmuted", function( e ) {
YTPConsole.append( "event: " + e.type + " (" + jQuery( "#bgndVideo" ).YTPGetPlayer().getPlayerState() + ") > time: " + e.time );
YTPConsole.append( "<br>" );
} );
// EVENT: YTPChanged
myPlayer.on( "YTPChanged", function( e ) {
YTPConsole.html( "" );
} );
// EVENT: YTPData
myPlayer.on( "YTPData", function( e ) {
YTPConsole.append( "******************************" );
YTPConsole.append( "<br>" );
YTPConsole.append( e.type );
YTPConsole.append( "<br>" );
YTPConsole.append( e.prop.title );
YTPConsole.append( "<br>" );
YTPConsole.append( e.prop.description.replace( /\n/g, "<br/>" ) );
YTPConsole.append( "<br>" );
YTPConsole.append( "******************************" );
YTPConsole.append( "<br>" );
} );
// EVENT: YTPTime
myPlayer.on( "YTPTime", function( e ) {
var currentTime = e.time;
var traceLog = currentTime / 5 == Math.floor( currentTime / 5 );
if ( traceLog && YTPConsole.is( ":visible" ) ) {
YTPConsole.append( myPlayer.attr( "id" ) + " > " + e.type + " > actual time is: " + currentTime );
YTPConsole.append( "<br>" );
}
} );
/* END DEBUG ******************************************************************************************/
/* FILTER SLIDERS ******************************************************************************************/
// create sliders for filters adjustment
var $slider = $( ".slider" ).simpleSlider( {
initialval: 0, //function (el) {return Math.random() * el.opt.scale},
scale: 100,
callback: function( el ) {
var filter = $( el ).data( "filter" );
var filterVal = +( el.value ).toFixed( 0 );
myPlayer.YTPApplyFilter( filter, filterVal );
$( "span", el ).html( filter + " (" + filterVal + ")" );
var applFilters = [];
var desc = "$(selector).YTPApplyFilters({";
for ( var x = 0; x < $( ".slider" ).length; x++ ) {
var slider = $( ".slider" ).eq( x ).get( 0 );
var $slaider = $( slider );
if ( slider.value ) applFilters.push( $slaider.data( "filter" ) + ": " + ( +( slider.value ).toFixed( 0 ) ) );
}
for ( var y in applFilters ) {
var comma = y < applFilters.length - 1 ? "," : "<br>";
desc += "<br> &nbsp;&nbsp;&nbsp;" + applFilters[ y ] + comma;
}
desc += "})";
$( "#filterScript" ).html( desc );
}
} );
//update applied filters
myPlayer.on( "YTPFiltersApplied", function() {
var filters = myPlayer.get( 0 ).filters;
for ( var key in filters ) {
$( ".slider[data-filter=" + key + "]" ).updateSliderVal( filters[ key ].value );
}
} );
} );
/* END FILTER SLIDERS ******************************************************************************************/
function changeLabel( state ) {
$( "#togglePlay" ).html( state == 1 ? "pause" : "play" );
$( "#togglePlay" ).removeClass( state == 1 ? "play" : "pause" );
$( "#togglePlay" ).addClass( state == 1 ? "pause" : "play" );
}
function checkForVal( val ) {
return val || 0;
}
</script>
</head>
<body>
<div id="wrapper" style="position:relative; padding:10px 0;z-index:10">
<div class="console">
<button onclick="jQuery('#bgndVideo').toggleVolume()">mute/unmute</button>
<button onclick="jQuery('#bgndVideo').YTPFullscreen()">go fullscreen</button>
<button id="debugBtn" class="command" onclick="jQuery('#debug').toggle()"> show/hide the console</button>
</div>
<br>
<br>
<h1 style="color:white">jQuery.mb.YTPlayer</h1>
<h2 style="color:white; text-align: center">An HTML5 Background player
<br>for YouTube videos</h2>
<div id="filtersControl">
<h2 style="color:white">Apply filters</h2>
<h3 style="color: white">* Does not work in IE.</h3>
<button id="toggleFilters" onclick="jQuery('#bgndVideo').YTPToggleFilters(function(a){if(!a) {$('#toggleFilters').html('enable filters')} else {$('#toggleFilters').html('disable filters')}})"> disable all filters </button>
<script>
function rFCallback( f ) {
$( ".slider[data-filter=" + f + "]" ).updateSliderVal( 0 );
}
</script>
<button id="removeFilters" onclick="jQuery('#bgndVideo').YTPRemoveFilter(rFCallback)"> remove all filters </button>
<div class="slider" data-filter="grayscale">
<span>grayscale</span>
</div>
<div class="slider" data-filter="hue_rotate" data-scale="360">
<span>hue rotate</span>
</div>
<div class="slider" data-filter="invert">
<span>invert</span>
</div>
<div class="slider" data-filter="sepia">
<span>sepia</span>
</div>
<div class="slider" data-filter="opacity">
<span>opacity</span>
</div>
<div class="slider" data-filter="saturate" data-scale="1000">
<span>saturate</span>
</div>
<div class="slider" data-filter="brightness" data-scale="200">
<span>brightness</span>
</div>
<div class="slider" data-filter="contrast" data-scale="500">
<span>contrast</span>
</div>
<div class="slider" data-filter="blur" data-scale="50">
<span>blur</span>
</div>
<div id="filterScript"></div>
<h2 style="color:white">Apply mask</h2>
<button class="command" onclick="jQuery('#bgndVideo').YTPAddMask('../examples/assets/mask-1.png')">Add mask</button>
<button class="command" onclick="jQuery('#bgndVideo').YTPRemoveMask()">Remove mask</button>
<h2 style="color:white">Remember the time</h2>
<input type="checkbox" name="should_remember" id="should_remember">
<span style="color: #fff">Check this if you want the video to start from where you left it next time you load this page.</span>
</div>
<div id="changeVideo">
<h2 style="color:white">Change video</h2>
<button class="command" onclick="jQuery('#bgndVideo').YTPChangeMovie({videoURL: '7SnmCUwOsts', mute:false, addRaster:false})">video 1</button>
<button class="command" onclick="jQuery('#bgndVideo').YTPChangeMovie({videoURL: 'BsekcY04xvQ', mute:false, addRaster:false})">video 2</button>
<button class="command" onclick="jQuery('#bgndVideo').YTPChangeMovie({videoURL: 'kcihcYEOeic', mute:false, startAt:10, stopAt: 363, addRaster:false})">video 3</button>
<button class="command" onclick="jQuery('#bgndVideo').YTPChangeMovie({videoURL: 'w0653vsLSqE', mute:false, startAt:25, stopAt: 0, addRaster:false})">video 4</button>
<br>
<br>
<div id="loadBox">
<label for="videoID">Or insert here the ID or the complete URL of the Youtube video:</label>
<input id="videoID" type="text" value="r1xohS2u69E" onfocus="$('#loadOptions').slideDown()">
<div id="loadOptions" style="display: none">
<br>
<input id="startAt" type="number" placeholder="starts at">
<input id="stopAt" type="number" placeholder="stops at">
<br>
<br>
<input id="audioOff" type="checkbox" checked> Audio is OFF
</div>
<br>
<button onclick="$('#loadOptions').slideUp(); jQuery('#bgndVideo').YTPChangeMovie({videoURL: $('#videoID').val(), startAt: checkForVal($('#startAt').val()), stopAt: checkForVal($('#stopAt').val()), mute: $('#audioOff').is(':checked') })">change video</button>
<div id="videoData" style="display: none">
<h2 style="color: #FFFFFF; text-align: left">Current video:</h2>
<div class="dida"></div>
</div>
<br>
<button onclick="jQuery.mbYTPlayer.removeStoredData()"> Remove stored data </button>
</div>
</div>
<div class="goto">
<button id="togglePlay" class="command pause" onclick="jQuery('#bgndVideo').YTPTogglePlay(changeLabel)">pause</button>
<br>
<br>
<br>
<a class="button" href="https://github.com/pupunzi/jquery.mb.YTPlayer/wiki" target="_blank">See the doc</a>
<a class="button" href="http://pupunzi.open-lab.com/mb-jquery-components/jquery-mb-ytplayer" target="_blank">Download it</a>
</div>
<a style="position: fixed;bottom:40px;right: 30px;" href="http://pupunzi.open-lab.com/consider-a-donation/" target="_blank">
<img border="0" alt="PayPal" src="https://www.paypal.com/en_US/i/btn/btn_donateCC_LG_global.gif" class="alignright">
</a>
<!--7SnmCUwOsts-->
<!--BsekcY04xvQ-->
<a id="bgndVideo" class="player" data-property="{videoURL:'r1xohS2u69E',containment:'body', showControls:true, autoPlay:true, loop:true, vol:50, mute:false, startAt:10,ratio:16/9, stopAt:150, opacity:1, addRaster:true, quality:'hd720', optimizeDisplay:true}">My video</a>
</div>
<div id="debug" style="display: none">
<h2 style="color: #FFFFFF; text-align: left">Events console: </h2>
<div id="eventListener"></div>
</div>
</body>
</html>