Można odtwarzać dźwięk za pomocą AudioContext
API i biorąc źródło, z dowolnego ArrayBuffer
(tj: od A XMLHttpRequest
lub a File
)
window.addEventListener('load', function() {
var audioCtx = new (window.AudioContext || window.webkitAudioContext)();
var source = audioCtx.createBufferSource();
var xhr = new XMLHttpRequest();
xhr.open('GET', 'audio-autoplay.wav');
xhr.responseType = 'arraybuffer';
xhr.addEventListener('load', function (r) {
audioCtx.decodeAudioData(
xhr.response,
function (buffer) {
source.buffer = buffer;
source.connect(audioCtx.destination);
source.loop = false;
});
source.start(0);
});
xhr.send();
});
Live example
Prace nad Chrome i Firefox zarówno mobilnych i stacjonarnych
Edit:
Warto wspomnieć, IMO, że ten „trick” w rzeczywistości może być uznane jako błąd przeglądarki, a może nie działać w za każdym razem, gdy przeglądarka uzna, że to zepsuje doświadczenie użytkownika/staje się powszechnie używaną uciążliwością (np. reklamy).
Warto również wspomnieć, że, przynajmniej na moim telefonie i FF 54, dźwięk będzie nadal grał, nawet jeśli Twój telefon jest wyciszony ...
Masz rację o autoodtwarzania dla tagu 'audio' , ale wygląda na to, że możesz automatycznie odtwarzać dźwięk za pomocą 'AudioContext' (zobacz moją odpowiedź). – Xenos