我正在网站上使用MEJS,它已集成到WordPress核心中。我在音频播放器方面遇到了问题,特别是在iPhone 5上的移动Safari上(我在iPhone 4上进行了测试,它工作正常,这很奇怪)。
问题是在iPhone 5上它无限地触发脚本mediaelement-and-player.min.js
,所以我的JS从不运行,因为它正在等待on load
事件。
如果我从时间线检查mejs代码,我发现它在这个功能上失败了:
c.media.addEventListener("loadedmetadata", function() {
c.updateDuration && c.updateDuration();
c.updateCurrent &&
c.updateCurrent(); // this is the line it seems to fail on
if (!c.isFullScreen) {
c.setPlayerSize(c.width, c.height);
c.setControlsSize()
}
}, false);
正如我所说,当音频播放器存在时,我的JS都不会运行,因为页面永远不会加载。重要的是我用来显示播放器的代码如下:
$attr = array(
'src' => $audio
);
echo wp_audio_shortcode($attr);
如果有人知道解决这个问题的方法会很棒!如果您需要更多信息,请告诉我们。
[编辑]
现在查看网络请求,似乎也无法下载音频文件,文件在请求列表中两次,每个都没有http状态,持续时间在0.2ms-0.5ms之间,对于全长的mp3曲目显然是不对的。
[编辑]
我也试过禁用所有插件并恢复默认主题,虽然一切看起来都正确加载并播放音频,如果你检查时间线仍然无法完成mediaelement-and-player.min.js
文件的运行,这意味着如果在jQuery中有一个on load事件,它永远不会被解雇。