2016-07-21 1 views
0

저는 Cordova 플러그인으로 Meteor를 사용하여 iPhone에 비디오를 녹화 한 다음이를 업로드 용 BLOB로 변환합니다.DataURI to Blob 오류 : DOM 예외 5 : 유효하지 않거나 올바르지 않은 문자가 지정되었습니다.

InvalidCharacterError: DOM Exception 5: An invalid or illegal character was specified, such as in an XML name. 

비디오가 더 이상 삼초보다 때 일반적으로 발생하는 것 같아 : 나는 그것이 작동하는 BLOB 나머지 절반에 로컬 파일 시스템에서 비디오를 변환하려고 시간의 절반에 관하여는이 오류를 제공합니다 , 그러나 그것은 정말로 짧은 비디오에서 일어났다. 난 정말 내가 잘못 뭐하는 거지 모르겠어요

function dataURItoBlob(dataURI) { 
    var input = dataURI.replace(/\s/g, ''); 
    var binary = atob(input.split(',')[1]); 
    var array = []; 
    for(var i = 0; i < binary.length; i++) { 
     array.push(binary.charCodeAt(i)); 
    } 
    return new Blob([new Uint8Array(array)], {type: "video/mp4"}); 
} 

나는 행운과 함께 몇 가지 다른 유사한 기능을 시도 : 여기 내 dataURItoBlob 기능입니다. 어떤 도움이라도 대단히 감사합니다. 감사!

+0

나는 기능을 BLOB 4 다른 dataURI을 시도하고 그들은 모두이 오류를 제공합니다. 그게 내 데이터라고 생각하게 만들지. 그게 문제 야.하지만 그걸 잘못 본 건 없어. 그것은 그것의 시작 부분에'data : video/mp4; base64 '를 가지고 있습니다. – gkrizek

답변

0

이 문제는 blob 함수가 아니라 base64 dataURI에서 발생하는 문제입니다. 어떤 이유로 인해 readAsDataUrl을 사용하려고했을 때 손상되었습니다. this SO answer에 따라 readAsBinaryData으로 해결했으며 data:video/mp4;base64,을 수동으로 추가했습니다.

Cordova - Reading Large Image corrupts image