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