ファイルが存在しない (404 エラー) か、要求が処理されない (タイムアウト状態) ために、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
}
?>
それ以外の場合、メディア要素は再生時間が 0:00 のプレーヤーを表示するだけです。
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 を返す場合、この関数は実行されていません。