only force media controls to be visible when necessarry
This commit is contained in:
parent
23c2d2795c
commit
2219107c69
1 changed files with 14 additions and 8 deletions
22
js/reveal.js
22
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 {
|
||||
|
|
Loading…
Reference in a new issue