2013-08-23 48 views
0

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

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

回答

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

否则mediaelements只显示与0:00球员持续时间。

0

如果你使用HTML5,你可以添加一个监听器error事件背后videoaudio元素:

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

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

此外,您可以在API的方式初始化的MediaElement

但是,以我的经验,如果资源给404,这个函数还没有执行。