2017-02-22 130 views
0

所以我一直在玩一個特定的想法。我的計劃是使用HTML5拖放和​​API讓人們上傳視頻。我想要做一些客戶端處理來顯示視頻。但是,當我運行代碼時,我發現Chrome崩潰。有沒有比文件閱讀器更好的方式來處理大型視頻文件?在html中處理非常大的視頻文件5

這裏是我的示例代碼:直接

function handle_video(e) { 
    e.stopPropagation(); // Stops some browsers from redirecting. 
    e.preventDefault(); 
    var files = e.dataTransfer.files; 
    elem = document.getElementById("dnd_dialog"); 
    elem.style.display="block"; 
    console.log(files); 
    var reader = new FileReader(); 
    document.getElementById("fname").value = files[0].name; 
    reader.readAsDataURL(files[0]); 
    reader.addEventListener("load", function() { 
     document.getElementById("thumbnail_upload").src = reader.result; 
    }, false); 
    // document.getElementById("thumbnail_upload").src = 
} 
function drag_over(evt) { 
    evt.stopPropagation(); 
    evt.preventDefault(); 
    return false; 
} 

回答

1

使用文件斑點。不需要FileReader,並且通過所有方法避免Data-URI(它們很慢並且瀏覽器可能會施加長度限制)。

瀏覽器將以更加流暢和智能的方式處理文件斑點。

關鍵線路是:

var fileBlob = e.dataTransfer.files[0]; 
var url = (URL || webkitURL).createObjectURL(fileBlob); 

video.src = url;