auto play/pause html5 media when entering/leaving slide (#388)
This commit is contained in:
		
							parent
							
								
									18795c161f
								
							
						
					
					
						commit
						32736a791c
					
				
					 2 changed files with 38 additions and 2 deletions
				
			
		
							
								
								
									
										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
											
										
									
								
							
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue