auto play/pause youtube video when entering/leaving slide (#388)
This commit is contained in:
parent
32736a791c
commit
ed4a8b51c5
2 changed files with 18 additions and 2 deletions
16
js/reveal.js
16
js/reveal.js
|
@ -1430,11 +1430,19 @@ var Reveal = (function(){
|
|||
function startEmbeddedContent( slide ) {
|
||||
|
||||
if( slide ) {
|
||||
// HTML5 media elements
|
||||
toArray( slide.querySelectorAll( 'video, audio' ) ).forEach( function( el ) {
|
||||
if( !el.hasAttribute( 'data-ignore' ) ) {
|
||||
el.play();
|
||||
}
|
||||
} );
|
||||
|
||||
// YouTube embeds
|
||||
toArray( slide.querySelectorAll( 'iframe[src*="youtube.com/embed/"]' ) ).forEach( function( el ) {
|
||||
if( !el.hasAttribute( 'data-ignore' ) ) {
|
||||
el.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}', '*');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1446,11 +1454,19 @@ var Reveal = (function(){
|
|||
function stopEmbeddedContent( slide ) {
|
||||
|
||||
if( slide ) {
|
||||
// HTML5 media elements
|
||||
toArray( slide.querySelectorAll( 'video, audio' ) ).forEach( function( el ) {
|
||||
if( !el.hasAttribute( 'data-ignore' ) ) {
|
||||
el.pause();
|
||||
}
|
||||
} );
|
||||
|
||||
// YouTube embeds
|
||||
toArray( slide.querySelectorAll( 'iframe[src*="youtube.com/embed/"]' ) ).forEach( function( el ) {
|
||||
if( !el.hasAttribute( 'data-ignore' ) && typeof el.contentWindow.postMessage === 'function' ) {
|
||||
el.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}', '*');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
|
4
js/reveal.min.js
vendored
4
js/reveal.min.js
vendored
File diff suppressed because one or more lines are too long
Loading…
Reference in a new issue