aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHakim El Hattab <hakim.elhattab@gmail.com>2019-01-29 11:26:46 +0100
committerHakim El Hattab <hakim.elhattab@gmail.com>2019-01-29 11:26:46 +0100
commit2219107c69189997289cfbcb3f76ba5ddff1ac51 (patch)
treecc368c49f93352763532cf5ff402757ba20a3c84
parent23c2d2795cacc5f01139a41528682aadff41819d (diff)
downloadperl-software-in-gnu-guix-2219107c69189997289cfbcb3f76ba5ddff1ac51.tar
perl-software-in-gnu-guix-2219107c69189997289cfbcb3f76ba5ddff1ac51.tar.gz
only force media controls to be visible when necessarry
-rw-r--r--js/reveal.js22
1 files changed, 14 insertions, 8 deletions
diff --git a/js/reveal.js b/js/reveal.js
index cee39e2..08ece7f 100644
--- a/js/reveal.js
+++ b/js/reveal.js
@@ -3809,13 +3809,6 @@
_appendParamToIframeSource( 'src', 'player.vimeo.com/', 'api=1' );
_appendParamToIframeSource( 'data-src', 'player.vimeo.com/', 'api=1' );
- // Always show media controls on mobile devices
- if( isMobileDevice ) {
- toArray( dom.slides.querySelectorAll( 'video, audio' ) ).forEach( function( el ) {
- el.controls = true;
- } );
- }
-
}
/**
@@ -3859,7 +3852,20 @@
// Mobile devices never fire a loaded event so instead
// of waiting, we initiate playback
else if( isMobileDevice ) {
- el.play();
+ var promise = el.play();
+
+ // If autoplay does not work, ensure that the controls are visible so
+ // that the viewer can start the media on their own
+ if( promise && typeof promise.catch === 'function' && el.controls === false ) {
+ promise.catch( function() {
+ el.controls = true;
+
+ // Once the video does start playing, hide the controls again
+ el.addEventListener( 'play', function() {
+ el.controls = false;
+ } );
+ } );
+ }
}
// If the media isn't loaded, wait before playing
else {