1

を使用すると断続的にエラーが発生する Web アプリケーションがありますChrome 30.0.1599.101 m

HTML5<video />タグを使用し、 を使用してsrc属性を制御していますjavascript

エラーの原因となっているページは、最初のビデオまたは 7 番目のビデオでエラーになることがあります。予測可能なパターンはありません。

javascriptを処理する は次のとおりsrcです。

var playing = false;
var media = $('#video')[0];

function initModule() {
    $.ajax({
        url: recap,
        type:'HEAD',
        error:
        function(){
            screenNotify('Error!', false, "404: Module video content could not be found." + recap, true);
        },
        success:
        function() {
            media.src = recap;
            registerListeners(media);
            media.load();
        }
    });
}

function registerListeners(listen) {
    listen.addEventListener('ended', hide_recap);
    listen.addEventListener('error', mediaError);
}

function mediaError(event) {
    screenNotify('Media Error!', false, "Media failed with code: " + event.currentTarget.error.code, true);
}

function play_recap() {
    if (!playing) {
        playing = true;
        media.play();
    }
}

function hide_recap() {
    if (playing) {
        playing = false;
        media.pause();
        media.currentTime = 0.0;
    }
}

興味深いことに、 を呼び出してもエラーはスローされませんmedia.load()。代わりに、ネットワーク リクエストを調べて、GETが実際に の結果を生成したことを確認する必要があり(failed)ます。

ここに画像の説明を入力

注意すべきもう 1 つの点は、このGETステータスは、この特定のフォルダーの場所内に存在するビデオに対してのみ発生することです: /interactive/vids/recap/. エラーは、アプリケーション内の他の場所では発生しません。

最後に、このエラーの奇妙な点は、アプリケーションが最終的に からビデオを再生しようとするとplay_recap()、約 1 秒のビデオが実際に再生され、続いてvideo要素でエラーがスローされることです。

ただし、エラーは、このアプリケーションがサーバーにMEDIA_ERR_NETWORKローカルにインストールされており、下で実行されていることです。Tomcatlocalhost

では、すべてが でしか実行されていないのに、なぜGETリクエストが生成(failed)され、HTML5 <video>要素が を生成するのでしょうか?MEDIA_ERR_NETWORKlocalhost

4

1 に答える 1

1

と非常によく似た問題に気付きましたChrome 31。一貫性がありませんMEDIA_ERR_NETWORK。他のすべてのテスト済みブラウザーは正常に動作します。

再試行する以外の解決策は見つかりませんでした-video要素を再作成するか、単に変更することができますcurrentTime-私の場合は常に役立ちます。

于 2013-12-12T15:21:15.093 に答える