2015-11-03 124 views
0

我使用HTML5畫布拍攝視頻標籤的屏幕截圖。這大約80%的時間在Chrome上運行。其他20%的時間我得到「無法執行'toDataURL''HTMLCanvasElement':受污染的畫布可能無法導出」錯誤。我假設這是因爲視頻源不支持CORS。如何判斷HTML5視頻標籤源是否支持CORS?

我試過添加屬性'videoTag.attr('crossorigin','anonymous');'到視頻標籤,但這似乎沒有幫助。

所以我的問題是有無論如何告訴視頻標籤是否支持CORS?

// Get handles on the video element 
    var video = videoContainer[0]; 

    var canvas = jQuery('#temp-canvas')[0]; 
    var context = canvas.getContext('2d'); 

    canvas.width = 640; 
    canvas.height = 360; 

    // Define the size of the rectangle that will be filled (basically the entire element) 
    context.fillRect(0, 0, 640, 390); 

    // Grab the image from the video 
    context.drawImage(video, 0, 0, canvas.width, canvas.height); 

    //return the url so we can use it 
    //Failed to execute toDataURL exception thrown here 
    imageUrl = canvas.toDataURL(); 
+0

我想我確實記得視頻上的這個錯誤有關要繪製的文件格式(類似於DR4在mp4中)有些事情不確定,但現在無法對其進行搜索...... – Kaiido

回答

1

由於您正在測試錯誤情況而不是瀏覽器功能,因此可以使用try-catch塊。