Я использую PhoneGap Build для создания приложения iOS v7.1 + и используя weinre для отладки. Я использую плагин для медиа-захвата и API файлов для захвата видео в попытке получить его представление base64. Я могу открыть видеомагнитофон, взять видео и вернуть путь к файлу. Затем я использую resolveLocalFileSystemURL()
, чтобы получить файл-объект, который требуется readAsDataURL()
. Проблема FileReader
никогда не вызывает обратный вызов onloadend
.PhoneGap FileReader/readAsDataURL Не запускаемые обратные вызовы
Я прошу вас весь день. Помещение console.log()
везде, о котором я мог думать. Я проверил, чтобы убедиться, что версия iOS is supported. Каждая переменная - это то, что я ожидаю, но обратный вызов просто не вызывается. Я также попытался настроить все другие обратные вызовы, но ни один из них никогда не вызвал. Я попытался заменить readAsDataURL()
на readAsText()
, но я все равно получаю bupkis. Я пробовал ждать до пяти минут, так как я решил, что асинхронный вызов может занять немного, но все равно ничего.
Ниже приведен мой код. Ниже находится консольный вывод.
var elements = new Object();
elements["video"] = $("#window_incident_create > .video > source")[0];
navigator.device.capture.captureVideo(
function(files) {
for (var i in files) {
var file = files[i];
var name = file.name;
var path = file.fullPath;
if (path.indexOf("/private") === 0)
path = "file://" + path.substr(8);
else
path = "file://" + path;
var type = file.type;
var lastModifiedDate = file.lastModifiedDate;
var size = file.size;
var reader = new FileReader();
reader.onloadend = function(event) {
console.log(3);
elements["video"].type = type;
elements["video"].src = "data:" + type + ";base64," + event.target.result;
console.log(4);
};
window.resolveLocalFileSystemURL(
path,
function(entry) {
console.log(1, entry.nativeURL);
reader.readAsDataURL(entry);
console.log(2);
},
function(error) {
console.log("0-0", error);
}
);
}
},
function(error) {
console.log("0-1", error);
},
{
limit: 1
}
);
1 "Файл: ///var/mobile/Applications/AB239984-FB9F-43C0-B699-3596AC8A43A8/tmp/capture/capturedvideo.MOV"
Вы когда-нибудь понять это? – Justin