我正在使用此代码,当我看到controls
时,我看到自动播放不起作用。<audio autoplay="true" src="music/lathe_di_chadar.mp3" type="audio/mp3" loop></audio>
并且无法在移动设备上正常运行,在网站上也可以正常运行。
谁能告诉我这个问题?
谢谢,感激不尽
最佳答案
现在是2020年
请注意(出于以下原因?)Chrome已更改了其自动播放政策(请参见https://developers.google.com/web/updates/2017/09/autoplay-policy-changes),因此您现在必须:
resume()
与页面您可以使用
AudioContext
API播放声音,并从任何ArrayBuffer
(例如,从XMLHttpRequest
或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
在移动设备和台式机上均可在Chrome和Firefox上运行
重要说明
值得一提的是,IMO,这个“窍门”实际上可以看作是浏览器的错误,并且如果浏览器认为这会破坏用户体验/成为广泛使用的烦恼(例如广告),则可能在任何时候都不再起作用。
还值得一提的是,即使您的手机已静音,至少在我的手机和FF 54上,声音仍会播放...
还值得一提的是,用户可以通过浏览器的常规选项或通过更高级的
autoplay
页面设置about:config
行为来满足其愿望和需求(autoplay
行为由Firefox的media.autoplay.enabled
和media.block-autoplay-until-in-foreground
首选项设置)。因此,不管您如何操作,强制音频
autoplay
是一个糟糕的UX想法。关于html - 音频标签自动播放在移动设备中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34837930/