0

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

关于如何处理这个问题的任何想法,以便可以进行某种类型的恢复?

4

2 回答 2

0

this probably doesn't answer your whole question, but the following is a simple trick I use to test if the file exists or not:

<?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
}
?>

Otherwise the mediaelements just displays a player with 0:00 duration.

于 2013-08-23T19:16:45.100 回答
0

如果您使用的是 HTML5,您可以error为底层videoaudio元素的事件添加一个侦听器:

$('audio').on('error', function(e) {
    console.log(e);
})

此外,您可以通过 API 方式初始化 MediaElement:

var player = new MediaElement('player1', {
    // fires when a problem is detected
    error: function () { 
    }
});

但是,根据我的经验,如果资源给出 404,则此功能尚未执行。

于 2015-05-20T09:20:59.173 回答