Browse Source

don't restart media when it's already playing #2882

Hakim El Hattab 1 year ago
parent
commit
1748a55ece
6 changed files with 6 additions and 3 deletions
  1. 0 0
      dist/reveal.esm.js
  2. 0 0
      dist/reveal.esm.js.map
  3. 0 0
      dist/reveal.js
  4. 0 0
      dist/reveal.js.map
  5. 5 2
      js/controllers/slidecontent.js
  6. 1 1
      js/reveal.js

File diff suppressed because it is too large
+ 0 - 0
dist/reveal.esm.js


File diff suppressed because it is too large
+ 0 - 0
dist/reveal.esm.js.map


File diff suppressed because it is too large
+ 0 - 0
dist/reveal.js


File diff suppressed because it is too large
+ 0 - 0
dist/reveal.js.map


+ 5 - 2
js/controllers/slidecontent.js

@@ -375,8 +375,11 @@ export default class SlideContent {
 			isVisible  		= !!closest( event.target, '.present' );
 			isVisible  		= !!closest( event.target, '.present' );
 
 
 		if( isAttachedToDOM && isVisible ) {
 		if( isAttachedToDOM && isVisible ) {
-			event.target.currentTime = 0;
-			event.target.play();
+			// Don't restart if media is already playing
+			if( event.target.paused || event.target.ended ) {
+				event.target.currentTime = 0;
+				event.target.play();
+			}
 		}
 		}
 
 
 		event.target.removeEventListener( 'loadeddata', this.startEmbeddedMedia );
 		event.target.removeEventListener( 'loadeddata', this.startEmbeddedMedia );

+ 1 - 1
js/reveal.js

@@ -2917,7 +2917,7 @@ export default function( revealElement, options ) {
 		loadSlide: slideContent.load.bind( slideContent ),
 		loadSlide: slideContent.load.bind( slideContent ),
 		unloadSlide: slideContent.unload.bind( slideContent ),
 		unloadSlide: slideContent.unload.bind( slideContent ),
 
 
-		// Media playback
+		// Start/stop all media inside of the current slide
 		startEmbeddedContent: () => slideContent.startEmbeddedContent( currentSlide ),
 		startEmbeddedContent: () => slideContent.startEmbeddedContent( currentSlide ),
 		stopEmbeddedContent: () => slideContent.stopEmbeddedContent( currentSlide, { unloadIframes: false } ),
 		stopEmbeddedContent: () => slideContent.stopEmbeddedContent( currentSlide, { unloadIframes: false } ),
 
 

Some files were not shown because too many files changed in this diff