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(); | 		updateControls(); | ||||||
| 		updateProgress(); | 		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. | 	 * 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