Audio Autoplay özelliği mobil cihazlarda çalışmıyor

dvrm (1) 6 yıl önce sordu

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


alattin (17125) 6 yıl önce cevapladı

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.