|
@@ -1147,6 +1147,10 @@ var Reveal = (function(){
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ // Handle embedded content
|
|
|
+ stopEmbeddedContent( previousSlide );
|
|
|
+ startEmbeddedContent( currentSlide );
|
|
|
+
|
|
|
updateControls();
|
|
|
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.
|
|
|
*/
|