I have a website which includes a HTML5 Video player. By default the videos play automatically on every page load. I have a button that shows a pause button, because this would be the first thing a user would do as the video is already playing.
However when viewing the Video on Safari, the video will not automatically play (https://stackoverflow.com/a/12496184). So i'm wondering how to hide this pause button and show the play button in Safari by default. Below is what I have:
function stopPlayer() {
var mediaPlayer;
mediaPlayer = document.getElementById('media-video');
mediaPlayer.controls = false;
mediaPlayer.pause();
mediaPlayer.currentTime = 0;
if ( mediaPlayer.pause ) {
$('.pause-btn').hide();
$('.play-btn').show();
}
}
function playPlayer() {
var mediaPlayer;
mediaPlayer = document.getElementById('media-video');
mediaPlayer.controls = false;
mediaPlayer.play();
}
function playPause() {
var mediaPlayer = document.getElementById('media-video');
if (mediaPlayer.paused) {
mediaPlayer.play();
$('.pause-btn').show();
$('.play-btn').hide();
} else {
mediaPlayer.pause();
$('.play-btn').show();
$('.pause-btn').hide();
}
}
// Swap the button states around in Safari
if (navigator.userAgent.match(/AppleWebKit/) && ! navigator.userAgent.match(/Chrome/)) {
$('.pause-btn').hide();
$('.play-btn').show();
}
EDIT: I just had to add a document ready to the bottom of my code. Below is the new fixed version:
function stopPlayer() {
var mediaPlayer;
mediaPlayer = document.getElementById('media-video');
mediaPlayer.controls = false;
mediaPlayer.pause();
mediaPlayer.currentTime = 0;
if ( mediaPlayer.pause ) {
$('.pause-btn').hide();
$('.play-btn').show();
}
}
function playPlayer() {
var mediaPlayer;
mediaPlayer = document.getElementById('media-video');
mediaPlayer.controls = false;
mediaPlayer.play();
}
function playPause() {
var mediaPlayer = document.getElementById('media-video');
if (mediaPlayer.paused) {
mediaPlayer.play();
$('.pause-btn').show();
$('.play-btn').hide();
} else {
mediaPlayer.pause();
$('.play-btn').show();
$('.pause-btn').hide();
}
}
// Swap the button states around in Safari, after the dom has loaded.
$( document ).ready(function() {
if (navigator.userAgent.match(/AppleWebKit/) && ! navigator.userAgent.match(/Chrome/)) {
$('.pause-btn').hide();
$('.play-btn').show();
}
});