Kaynağa Gözat

autoSlide duration with playbackRate

The autoSlide duration of media elements with data-autoplay now takes the playbackRate of said media element into account when setting the duration so that autoSlide and the media element stay in sync.
chadmorrow 10 yıl önce
ebeveyn
işleme
ea8964ddbf
1 değiştirilmiş dosya ile 4 ekleme ve 3 silme
  1. 4 3
      js/reveal.js

+ 4 - 3
js/reveal.js

@@ -3767,12 +3767,13 @@
 			// If there are media elements with data-autoplay,
 			// automatically set the autoSlide duration to the
 			// length of that media. Not applicable if the slide
-			// is divided up into fragments.
+			// is divided up into fragments. 
+			// playbackRate is accounted for in the duration.
 			if( currentSlide.querySelectorAll( '.fragment' ).length === 0 ) {
 				toArray( currentSlide.querySelectorAll( 'video, audio' ) ).forEach( function( el ) {
 					if( el.hasAttribute( 'data-autoplay' ) ) {
-						if( autoSlide && el.duration * 1000 > autoSlide ) {
-							autoSlide = ( el.duration * 1000 ) + 1000;
+						if( autoSlide && (el.duration * 1000 / el.playbackRate ) > autoSlide ) {
+							autoSlide = ( el.duration * 1000 / el.playbackRate ) + 1000;
 						}
 					}
 				} );