2011-11-15 15 views
2

特定の時間の後に開始し、特定の時間後に停止するように(ローカルにホストされ、ストリームされない)ビデオを取得しようとしています。誰かがここでJavascriptで私を助けましたが、それは私のためには機能しません - 全く再生の時間に影響を与えません。特定の時間にビデオを開始し、特定の時間の後にビデオを停止するJavascriptイベントリスナー

だから、私のヘッダに、私はこのようなジャバスクリプトと呼ばれてきました:

<script src="Backend/build/Timer.js"></script> 

そして、実際のJavascriptを次のようになります。

// JavaScript Document 

var starttime = 2000; // start at 2 seconds 
var endtime = 4000; // stop at 4 seconds 

var video = document.getElementById('player1'); 
video.currentTime = starttime; 

video.addEventListener("timeupdate", function() { 
    if (video.currentTime >= endtime) { 
     video.pause(); 
    } 
}, false); 

答えて

7
  1. 機能にコードをラップし、ドキュメント準備完了またはボディロードイベントハンドラでその関数を呼び出す。そうでなければvideo変数値が無効である可能性がある。 W3C standardによると
  2. currentTime属性は、現在の再生位置を返し、得ることに、で表現しなければなりません。設定時に、メディア要素に現在のメディアコントローラがある場合は、INVALID_STATE_ERR例外をスローする必要があります。それ以外の場合は、ユーザーエージェントは新しい値を求めなければなりません(例外が発生する可能性があります)。しようとしているの前にさらに

    あなたは2秒でビデオの再生を開始し、4秒(ビデオタイムスタンプで)で停止したい場合は、 starttimeを設定

    、2からendtime、4それぞれ、いない2000、4000、 starttime、あなたはビデオリソース一度

    function playVideo() { 
        var starttime = 2; // start at 2 seconds 
        var endtime = 4; // stop at 4 seconds 
    
        var video = document.getElementById('player1'); 
    
        //handler should be bound first 
        video.addEventListener("timeupdate", function() { 
         if (this.currentTime >= endtime) { 
          this.pause(); 
         } 
        }, false); 
    
        //suppose that video src has been already set properly 
        video.load(); 
        video.play(); //must call this otherwise can't seek on some browsers, e.g. Firefox 4 
        try { 
         video.currentTime = starttime; 
        } catch (ex) { 
         //handle exceptions here 
        } 
    } 
    
をロードする必要があります
関連する問題