2013-02-25 11 views
5

próbowałem realizować te prace wokół 1. Fotografowanie 2. Pobierz zdjęcie ze to zapisane miejsce 3. Czytaj zdjęcie jako base64resolveLocalFileSystemURI kod błędu 5 Windows Phone 7 PhoneGap

I już po tej metodologii:

var cameraOptions = {}; 
function capturePhoto() { 
    console.log("capture photo"); 
    cameraOptions = { quality: 70, destinationType: Camera.DestinationType.FILE_URI, sourceType: Camera.PictureSourceType.CAMERA, saveToPhotoAlbum: true }; 
    doIt(); 
} 
function doIt() { 
    navigator.camera.getPicture(onCameraSuccess, onCameraFail, cameraOptions); 
} 
function onCameraSuccess(imageURI) { 
    console.log("Camera Success"); 

    $('#MokhalfaPhotoLocation').val(imageURI); 
    console.log("Image URI: " + imageURI); 
    window.resolveLocalFileSystemURI(imageURI, onResolveImageSuccess, onFail); //get the file from the physical path... 
} 
    function onResolveImageSuccess(fileEntry) { 
    fileEntry.file(gotFile, onFail); 
} 
function gotFile(file) { 
    readDataUrl(file); 
} 
function readDataUrl(file) { 
    console.log("read file as dataUrl"); 
    var reader = new FileReader(); 
    reader.onloadend = function (evt) { 
     console.log("Read as data URL"); 
     window.localStorage.setItem("mokhalfaPhotoURL", evt.target.result); 
}; 
    reader.readAsDataURL(file); 
} 

ten łańcuch działało dobrze aż do CameraSuccess to nie na linii

window.resolveLocalFileSystemURI(imageURI, onResolveImageSuccess, onFail); 

weszła zdarzenie onFail z kodem błędu = 5

btw, ten kod działa poprawnie na Androida ale problem jest tutaj z Windows Phone 7 ktoś wie jaki jest problem?

Odpowiedz

4

Niedawno natrafiłem na ten błąd. Rozwiązanie jest dość proste :)

function onCameraSuccess(imageURI) { 
    console.log("Camera Success"); 

    $('#MokhalfaPhotoLocation').val(imageURI); 
    console.log("Image URI: " + imageURI); 
    window.resolveLocalFileSystemURI("//" + imageURI, onResolveImageSuccess, onFail); //get the file from the physical path... 
} 

Jeśli zaalarmować imageURI powinno wyglądać (/ CachedImagePath/etcetc /), więc wiem, gdzie window.resolveLocalFileSystemURI robi, aby rozwiązać to poprzez poprzedzenie go do URI // patrzy na właściwą ścieżkę.

zdrowie, będę pisać ten problem ich bug tracker

0

Ten problem został rozwiązany. Zobacz "https://issues.apache.org/jira/browse/CB-2736". Jednak w moim Windows 8 Phone nie mogę dostać się do pliku zdjęcia, który będzie wyświetlany w znaczniku HTML IMG. Próbowałem już fileEntry.fullPath, fileEntry.toURL() i fileEntry.toNativeURL().

0

należy spróbować coś takiego

$window.resolveLocalFileSystemURL("file://" + videoURI, function (fileEntry) { 
    console.log('Success: '+fileEntry.name); 
    fileEntry.getMetadata(function(metadata) { 
     if(metadata.size>20971520){ 
      $ionicPopup.alert({ 
       template: '<h5>Lo sentimos <i class="icon ion-sad-outline"></i> , el video sobre pasa el limite de peso</h5>', 
       title: 'Limite de peso', 
      }); 
     }else{ 

     } 
    }); 
}, function (err) { 
     console.log(err); 
}); 
Powiązane problemy