Снимать изображение с камеры не удается в 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.

Ответы на вопрос(1)

Ваш ответ на вопрос