auto play/pause html5 media when entering/leaving slide (#388)
This commit is contained in:
		
							
								
								
									
										36
									
								
								js/reveal.js
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								js/reveal.js
									
									
									
									
									
								
							@@ -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.
 | 
			
		||||
	 */
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								js/reveal.min.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								js/reveal.min.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
		Reference in New Issue
	
	Block a user