我们正在寻找一种方法来捕获 mediaelement 由于文件不存在(404 错误)或请求从未处理(超时情况)而未加载文件的情况。在这些情况下似乎没有调用错误事件,这是真的吗?
关于如何处理这个问题的任何想法,以便可以进行某种类型的恢复?
我们正在寻找一种方法来捕获 mediaelement 由于文件不存在(404 错误)或请求从未处理(超时情况)而未加载文件的情况。在这些情况下似乎没有调用错误事件,这是真的吗?
关于如何处理这个问题的任何想法,以便可以进行某种类型的恢复?
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.
如果您使用的是 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,则此功能尚未执行。