JSFiddle - React, Tailwind, and code Playground
by StepBaro
HTML
<script type="text/javascript">
// NOTA: Se il file audio è su un dominio o sottodominio diverso non funzionerà su mobile.
// Utilizzare la path relativa come sotto. (Senza "http://nomedominio.ext")
var mp3 = '/wp-content/uploads/2019/12/Musica_Home.mp3';
var mp3_mobile = 'wp-content/uploads/2019/12/Musica_Home_ridotto.mp3';
//var mp3 = 'http://www.gaetanosicaridj.it/wp-content/uploads/2019/03/nuovo-sito-ultimooo-4-TAGLIATA-INIZIO-E-FINE.mp3';
var iFrameBackup;
var SoundState = true;
jQuery(document).ready(function() {
jQuery('#iframeAudio').attr('src', mp3);
jQuery('#sound').attr('src', mp3);
if (!isMobile()) {
}
});
jQuery(window).load(function() {
var isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
if (isMobile()) {
jQuery('#iframeAudio').remove();
jQuery('#sound').remove();
// FOR MOBILE
var isLoaded = false;
var audioCtx = new(window.AudioContext || window.webkitAudioContext)();
var source = audioCtx.createBufferSource();
var xhr = new XMLHttpRequest();
xhr.open('GET', mp3_mobile);
xhr.responseType = 'arraybuffer';
xhr.addEventListener('load', function(r) {
audioCtx.decodeAudioData(
xhr.response,
function(buffer) {
source.buffer = buffer;
source.connect(audioCtx.destination);
source.loop = true;
});
source.start(0);
isLoaded = true;
});
xhr.send();
jQuery('#sound_button').on('click', function() {
if (!isLoaded) return false;
SoundState = !SoundState
if (!SoundState) { // Sound off
jQuery('#sound_button').html("<img alt='Music Off' title='Music Off' src='http://www.gaetanosicaridj.it/wp-content/uploads/2016/01/audio_no.png' />");
audioCtx.suspend();
} else { // Sound on
jQuery('#sound_button').html("<img alt='Riproduci' title='Music On'...