简体   繁体   中英

javascript onload play audio file

I have an audio file with a button when i click on it the audio play and when i click again the audio pause i also whant when the page is load the audio play directly without clicking on the button

I tried autoplay in the html but it didn't work

I tried allow="autoplay" also it didn't work

I tried window.addEventListener('load') also it didn't work

I read that i should use muted but also it didn't work

I'm using chrome and firefox

So How can i make this audio work on refresh or on load for the page and when i click in the button the audio will be pause it and when i click again the audio will be paly

I searched on stack overflow but nothing solve my problem

 let audio = document.querySelector('.music audio'); let audioBtn = document.querySelector('.music.musicBtn i'); audio.volume = 0.2; window.addEventListener("load", () => { audio.play(); }); audioBtn.addEventListener("click", () => { if (audio.paused) { audio.play(); audioBtn.classList.add('fa-volume-up'); audioBtn.classList.remove('fa-volume-mute'); } else { audio.pause(); audioBtn.classList.add('fa-volume-mute'); audioBtn.classList.remove('fa-volume-up'); } });
 .musicBtn { background: transparent; padding: 1.5rem 2rem; font-size: 3rem; border: none; cursor: pointer; }
 <div class="music"> <audio id="audio" style="display:none;" src="music/music.mp3" allow="autoplay" controls autoplay loop></audio> <button class="musicBtn"><i class="fas "></i></button> </div> <script src="https://kit.fontawesome.com/9e5ba2e3f5.js" crossorigin="anonymous"></script>

You can not, as browsers only allow playing sounds as a consequence of user-interaction. You could try to hijack any click or mouse movement to enable the plaining of sound, but there is no way to really do it on load alone.

https://developer.mozilla.org/en-US/docs/Web/Media/Autoplay_guide

You can try manual interaction by clicking on the play button on DOM load so that the audio plays,

if (document.readyState === 'complete') {
   document.getElementById('#playButton').click();
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM