2013-01-09 59 views
1

我剛剛從書HTML5 Canvas中複製了一些示例,該示例將JavaScript中的視頻加載並在Canvas上顯示該視頻;在腳本中設置src時未加載視頻

基本代碼如下:

videoElement = document.createElement("video"); 
videoDiv = document.createElement("div"); 
document.body.appendChild(videoDiv); 
videoDiv.appendChild(videoElement); 

videoElement.setAttribute("src", "url to the video"); 
videoElement.addEventListener("canplaythrough", videoLoaded, false); 

假設videoLoaded應該在加載視頻時後調用,但它不是;

我在firebug中檢查過它,它顯示瀏覽器只是不斷加載視頻,但沒有內容提取;

我只是將firefox從v17升級到v18。

它在V17中工作。

有人可以幫我解決這個問題嗎?謝謝。

回答

0

嘗試設置不帶「setAttribute」功能的源。您還需要啓用控件才能讓大多數瀏覽器實際運行。

替換:

videoElement.setAttribute("src", "url to the video"); 

有:

videoElement.src = 'http://static.bouncingminds.com/ads/5secs/baileys_5sec.mp4'; 
videoElement.width = 320; 
videoElement.height = 240; 
videoElement.controls = true; 

other options可以應用到視頻標籤,我會建議考慮之一是 「預加載」

所有使用上述代碼在Chrome上工作...我也建議不要依賴HTML5,因爲所有瀏覽器都不支持。有幾個很好的後備選項,如VideoJSJWPlayer將起到什麼樣的瀏覽器支持,而不是強迫HTML5或Flash

編輯:我只注意到「火狐」 - 用別的東西代替.mp4格式的視頻, FF不能很好的與mp4的

+0

我試過video.src並設置video.preload = true,不起作用。 FF仍然繼續加載,但沒有內容獲得。 – user1484819

+0

我試過設置preload =「auto」,它的工作原理。非常感謝。 – user1484819

+0

非常好 - 標籤中實際上沒有preload =「true」選項。 「auto」「metadata」「none」 通過使用「none」,它與它完全不存在於標籤中一樣。 – CrazyVipa