我们正在寻找一种方法来捕获mediaelement何时不加载文件,因为它不存在(404错误)或从不处理请求(超时情况)。在这些情况下似乎没有调用错误事件,是真的吗?
有关如何处理这一问题的任何想法都可以进行某种类型的恢复吗?
答案 0 :(得分:0)
这可能无法解答您的整个问题,但以下是我用来测试文件是否存在的简单技巧:
<?php
$mp3_url = "http://mywebsite.com/wp-content/uploads/2013/08/mp3.mp3"
/* convert the lecture URI into an absolute path for file_exists() */
$mp3_abs_url = preg_replace( "#" . WP_CONTENT_URL . "#", WP_CONTENT_DIR, $mp3_url );
if ( file_exists($mp3_abs_url) ) {
echo do_shortcode("[audio mp3=$mp3_url][/audio]");
} else {
?>
<div> <?php echo "No MP3 available."; ?> </div>
<?php
}
?>
否则,媒体元素只会显示持续时间为0:00的玩家。
答案 1 :(得分:0)
如果您使用的是HTML5,则可以为基础error
或video
元素的audio
事件添加监听器:
$('audio').on('error', function(e) {
console.log(e);
})
此外,您可以使用API方式初始化MediaElement:
var player = new MediaElement('player1', {
// fires when a problem is detected
error: function () {
}
});
但是,根据我的经验,如果资源给出404,则该函数尚未执行。