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