15

HTML5 ビデオが iPad で「終了」イベントを生成しないことがあります。"controls" 属性を省略して JavaScript から再生を開始した場合にのみ発生するようです。通常、最初は問題なく動作しますが、2 回目はビデオが再生されますが、「終了」イベントは生成されません。クリップの先頭にリセットするために、各再生後に「load()」を呼び出します (シークがまったく機能していないように見えるため、このスレッドを参照してください)。「timeupdate」イベントを追跡し、いつプレイ終了アクションを実行するかという回避策がありますが、vid.currentTime>=vid.duration他の誰かがこの問題を経験したことがあるかどうか疑問に思っていました. 関連するコードを次に示します。

乾杯 -クリス

ドキュメントのオンロード機能:

function load() {
    var vid = document.getElementById('vid');
    vid.addEventListener('ended', function() {
        alert('video ended');
        vid.load();
    },false);
}

html:

<body onload="load();">
<h1>HTML5 Video Test</h1>
<input type="submit" value="Play" onclick="document.getElementById('vid').play();">
<video id="vid" src="test.mov" width="640" height="480"></video>
</body>
4

1 に答える 1

2

load()シークを強制するために使用しないでください。ビデオの代わりにに設定video.currentTimeすると、最初にジャンプし、イベントは引き続き適切にディスパッチされます。(iOS 3.2 および 4.2 でテスト済み)0.10ended

于 2011-03-29T04:25:35.073 に答える