Sayfa yüklendiğinde Javascript kullanarak arkaplanda müzik oynatıyorum. Fakat mobil tarayıcılardan girdiğimde müziği oynatmıyor. Biraz araştırınca hem Android hem de IOS da desteklenmediğini öğrendim. Başka bir yolu var mıdır?
Toplam 1 cevap
Normalde mobil tarayıcıda otomatik olarak ses dosyası oynatamazsın. Bu engellenmiştir.
Fakat mobil tarayıcıda muziği otomatik oynatmak için şöyle bir kod var:
window.addEventListener('load', () => {
let audioCtx = new (window.AudioContext || window.webkitAudioContext)();
let xhr = new XMLHttpRequest();
xhr.open('GET', 'muzik.mp3');
xhr.responseType = 'arraybuffer';
xhr.addEventListener('load', () => {
let playsound = (audioBuffer) => {
let source = audioCtx.createBufferSource();
source.buffer = audioBuffer;
source.connect(audioCtx.destination);
source.loop = false;
source.start();
setTimeout(function () {
let t = document.createElement('p');
t.appendChild(document.createTextNode((new Date()).toLocaleString() + ': Sound played'));
document.querySelector('.output').appendChild(t);
playsound(audioBuffer);
}, 1000 + Math.random()*2500);
};
audioCtx.decodeAudioData(xhr.response).then(playsound);
});
xhr.send();
});
Bir zamanlar bunu kullanmıştım. Sayfa açıldığında kullanıcıyı müziğe zorlamak doğru bir davranış değil. Bunu da unutma.
Bir de yukarıdaki kod "bug" gibi düşünebilirsin. Günün birinde tarayıcılar tarafından bu engellenebilir.