【发布时间】:2016-07-28 05:55:00
【问题描述】:
我正在使用带有 Cordova 插件的 Meteor 在 iPhone 上录制视频,然后将其转换为 blob 进行上传。大约一半的时间我尝试将视频从本地文件系统转换为它可以工作的 blob,而另一半它给出了这个错误:
InvalidCharacterError: DOM Exception 5: An invalid or illegal character was specified, such as in an XML name.
这似乎通常发生在视频长于 3 秒时,但它发生在真正的短视频上。这是我的dataURItoBlob 函数:
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"});
}
我真的不确定我做错了什么,我尝试了其他几个类似的功能,但没有运气。任何帮助是极大的赞赏。谢谢!
【问题讨论】:
-
我已经尝试了 4 个其他 dataURI 到 Blob 函数,它们都给出了这个错误。让我觉得问题出在我的 dataURI 上,但我看不出有什么问题。它的开头有
data:video/mp4;base64,。
标签: javascript cordova meteor base64 blob