2012-11-09 197 views
0

我想捕捉和上傳HTML5視頻標籤的縮略圖,我想捕獲和HTML5視頻標籤上傳縮略圖

這裏是我的代碼

var w = 135;//video.videoWidth * scaleFactor; 
    var h = 101;//video.videoHeight * scaleFactor; 
    var canvas = document.createElement('canvas'); 

    canvas.width = w; 
    canvas.height = h; 
    var ctx = canvas.getContext('2d'); 
    ctx.drawImage(_video, 0, 0, w, h); 
    canvas.toDataURL("image/jpg"); 
    var blob = canvas.msToBlob(); 

我得到這個例外「對象#有沒有一種方法'msToBlob'「在鉻瀏覽器。 任何人都可以幫忙,這裏有什麼不對?

回答

0

這是因爲chrome還不支持toBlob方法。我檢查了每晚的建築物,看不到它。

它被討論here一段時間,但沒有什麼脫落,並且Firefox仍在等待案件被更好地定義。

總而言之,chrome不支持這個功能,我認爲它只在ie9中支持,所以最好不要在生產站點上使用它。

其他建議,如果你試圖存儲屏幕抓取的畫布是maby探索使用canvas.toDataURL();然後將其存儲爲base64。

對不起,這不是一個更好的結果你

要看到最新的Chrome瀏覽器檢查:

http://code.google.com/p/chromium/issues/detail?id=67587

+0

,但它也不適用於Android和iOS6的所有瀏覽器 – AzharTheGreat

+0

對不起,你可以澄清你的意思是它也無法在其他瀏覽器上工作,你是否仍然在談論toBlob或toDataUrl –

+0

實際上,我想從移動投影html5上傳視頻到我的服務器,用戶選擇視頻文件並按下上傳按鈕。 我正在使用mstoBlob,但我得到了同樣的錯誤, – AzharTheGreat

0

ms代表微軟,所以msToBlob將只可在IE中。其他瀏覽器(支持一次)也可能爲其加上前綴(webkitToBlob),並最終切換到前綴前綴(toBlob

即使您使用各種前綴檢查了支持,但支持仍然受限。 相反,你可以使用toDataURL返回編碼的URI一個base64,你可以作爲一個img元素的src屬性使用:

var b64 = canvas.toDataURL("image/jpg"); 
//later... 
thumbnailImg.src = b64;