2012-05-28 102 views

回答

0

你必須先加載視頻(等待其readyState爲4)。

然後就可以,如經常只要你想,繪製其內容的畫布上,彷彿它是任何圖像:

function drawMyCanvas() { 
    ... 

    if (videoElement.readyState==4) { 
      context.drawImage(videoElement, destX, destY, destWidth, destHeight); 
      if (!videoElement.paused) { 
       // set timeout for a new drawing 20 ms later 
       window.setTimeout(drawMyCanvas, 20); 
      } 

    ... 

當我這樣做,我通常有一個循環繪製圖像每20毫秒以及一個mousemove處理程序,如果其中一個可移動對象移動,它將調用我的畫布繪製函數。

+0

謝謝,多數民衆贊成在工作,但我有一個問題,因爲我有。 c.fillStyle =「white」; c.fillRect(0,0,1300,768);這是即時通訊拖動圖像時清除畫布。 視頻總是以白色閃爍.. – Jacinto

+0

如果您使用與fillRect相同的功能繪製視頻幀,則不應該閃爍(我不這樣做)。你確定你每次畫畫布都畫畫嗎? –

+0

VAR循環=的setInterval(函數(){ c.fillStyle = 「白色」; c.fillRect(0,0,1300,768); 在圖像(VAR張圖片) {\t \t \t images [img] .update(); } },10); in .uptade()是im繪製圖像和繪製視頻幀的地方 – Jacinto