Mediaelement如何处理丢失的文件?

时间:2013-08-23 19:01:26

标签: mediaelement.js

我们正在寻找一种方法来捕获mediaelement何时不加载文件,因为它不存在(404错误)或从不处理请求(超时情况)。在这些情况下似乎没有调用错误事件,是真的吗?

有关如何处理这一问题的任何想法都可以进行某种类型的恢复吗?

2 个答案:

答案 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,则可以为基础errorvideo元素的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,则该函数尚未执行。