Снимать изображение с камеры не удается в 20% случаев
var camera = {
settings : {
quality : 50,
targetWidth : 1024,
targetHeight : 1024,
correctOrientation : true
}
};
var error = function(message) {
alert("Error happened while trying to get a picture", message);
};
document.addEventListener("deviceready", function() {
camera.toFile = function() {
this.settings.destinationType = navigator.camera.DestinationType.FILE_URI;
return this;
},
camera.toBase64 = function() {
this.settings.destinationType = navigator.camera.DestinationType.DATA_URL;
return this;
},
camera.fromCamera = function() {
this.settings.sourceType = navigator.camera.PictureSourceType.CAMERA;
return this;
};
camera.fromLibrary = function() {
this.settings.sourceType = navigator.camera.PictureSourceType.PHOTOLIBRARY;
return this;
};
camera.fromPhotoAlbum = function() {
this.settings.sourceType = navigator.camera.PictureSourceType.SAVEDPHOTOALBUM;
return this;
}
camera.get = function(callback) {
navigator.camera.getPicture(function(data) {
alert("taking a picture successful");
callback(data);
}, error, camera.settings);
};
}, false);
Это моя маленькая обертка для камеры. И я называю это так:
camera.fromPhotoAlbum().toBase64().get(function(base64){});
Приблизительно в 20% случаев "предупреждение (" успешная съемка ");" не вызывается, пока не отображается ошибка. Если я отменяю фотосъемку, при попытке получить фотографию появляется предупреждение «Ошибка произошла» отображается, так что ошибка обратного вызова работает.
В принципе ничего не происходит. Я проверил его на Samsung Galaxy S2 на CM9 и совершенно новом HTC One X.