auto play/pause html5 media when entering/leaving slide (#388)

This commit is contained in:
Hakim El Hattab 2013-04-27 18:27:34 -04:00
parent 18795c161f
commit 32736a791c
2 changed files with 38 additions and 2 deletions

View file

@ -1147,6 +1147,10 @@ var Reveal = (function(){
} }
} }
// Handle embedded content
stopEmbeddedContent( previousSlide );
startEmbeddedContent( currentSlide );
updateControls(); updateControls();
updateProgress(); updateProgress();
@ -1419,6 +1423,38 @@ var Reveal = (function(){
} }
/**
* Start playback of any embedded content inside of
* the targeted slide.
*/
function startEmbeddedContent( slide ) {
if( slide ) {
toArray( slide.querySelectorAll( 'video, audio' ) ).forEach( function( el ) {
if( !el.hasAttribute( 'data-ignore' ) ) {
el.play();
}
} );
}
}
/**
* Stop playback of any embedded content inside of
* the targeted slide.
*/
function stopEmbeddedContent( slide ) {
if( slide ) {
toArray( slide.querySelectorAll( 'video, audio' ) ).forEach( function( el ) {
if( !el.hasAttribute( 'data-ignore' ) ) {
el.pause();
}
} );
}
}
/** /**
* Reads the current URL (hash) and navigates accordingly. * Reads the current URL (hash) and navigates accordingly.
*/ */

4
js/reveal.min.js vendored

File diff suppressed because one or more lines are too long