【发布时间】:2016-03-16 12:23:11
【问题描述】:
我正在使用此处显示的 Modernizr 代码http://codepen.io/davidgenetic/pen/FmHaD 来检查是否支持自动播放。这在第一次在 Safari 桌面 (v 9.0.1) 上查看该站点时有效,但之后失败(错误地断定不支持自动播放)。删除缓存并重新加载页面使其再次工作。在其他浏览器(Chrome、IE、Firefox、Opera)上,这可以正常工作。有谁知道如何解决这个问题?
Modernizr.addTest('autoplay', function(){
// Audio file data URIs from comments in
// [this gist](https://gist.github.com/westonruter/253174)
// via [mudcube](https://github.com/mudcube)
var mp3 = 'somesong.mp3';
try {
var audio = new Audio();
var src = audio.canPlayType('audio/ogg') ? ogg : mp3;
audio.autoplay = true;
audio.volume = 0;
// this will only be triggered if autoplay works
audio.addEventListener('play', function() {
Modernizr.autoplay = true;
// is there a better way to re-evaluate the html classes added by Modernizr?
var root = document.getElementsByTagName('html')[0];
root.classList.remove('no-autoplay');
root.classList.add('autoplay');
// or if you're using jQuery:
// $('html').toggleClass('no-autoplay autoplay');
}, false);
audio.src = src;
} catch(e) {
console.log('[AUTOPLAY-ERROR]', e);
}
return false;});
【问题讨论】:
-
无法使用您提供的 codepen 进行复制。使用 Safari 版本 9.0.2 (10601.3.9) 运行 OSX 10.10.5。总是显示支持我。