diff --git a/js/reveal.js b/js/reveal.js
index d4778cb17ca6dd28d697bd8dc06181f3cc3b3362..b8026c1d8a41163cf9ce2ac490fee8cc91300be5 100644
--- a/js/reveal.js
+++ b/js/reveal.js
@@ -3498,9 +3498,16 @@
 
 				if( autoplay && typeof el.play === 'function' ) {
 
+					// If the media is ready, start playback
 					if( el.readyState > 1 ) {
 						startEmbeddedMedia( { target: el } );
 					}
+					// Mobile devices never fire a loaded event so instead
+					// of waiting, we initiate playback
+					else if( isMobileDevice ) {
+						el.play();
+					}
+					// If the media isn't loaded, wait before playing
 					else {
 						el.removeEventListener( 'loadeddata', startEmbeddedMedia ); // remove first to avoid dupes
 						el.addEventListener( 'loadeddata', startEmbeddedMedia );