我们正在寻找一种方法来捕获mediaelement因为不存在(404错误)或者从未处理请求(超时情况)而不加载文件。在这些情况下,似乎并没有调用错误事件,这是真的吗?Mediaelement如何处理丢失的文件?
有关如何处理这个问题的任何想法,因此可以进行某种类型的恢复?
我们正在寻找一种方法来捕获mediaelement因为不存在(404错误)或者从未处理请求(超时情况)而不加载文件。在这些情况下,似乎并没有调用错误事件,这是真的吗?Mediaelement如何处理丢失的文件?
有关如何处理这个问题的任何想法,因此可以进行某种类型的恢复?
这可能并不回答您的全部问题,但下面是一个简单的一招我用它来测试,如果该文件存在与否:
<?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
}
?>
否则mediaelements只显示与0:00球员持续时间。
如果你使用HTML5,你可以添加一个监听器error
事件背后video
或audio
元素:
var player = new MediaElement('player1', {
// fires when a problem is detected
error: function() {
}
});
:
$('audio').on('error', function(e) {
console.log(e);
})
此外,您可以在API的方式初始化的MediaElement
但是,以我的经验,如果资源给404,这个函数还没有执行。