[ 
https://issues.apache.org/jira/browse/CB-6484?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Shazron Abdullah updated CB-6484:
---------------------------------

    Description: 
First time the camera is used it works fine.  However, if the user cancels or 
tries to take another picture the camera screen is black.  At this point it can 
take between 10-15 seconds before the camera preview appears and another 
picture can be taken.  Have tried all version of the camera plugin starting at 
0.2.5 (up to 0.2.9).   Here is the code and device logs:

Here is the function... there are no errors logged in console when called:

{code}
app.takePhoto = function() {
        navigator.camera.getPicture(app.capturePhoto, app.onFail, { 
            quality : 20, 
            destinationType : 1, 
            sourceType : 1,
            encodingType: Camera.EncodingType.JPEG,
            targetWidth: 1024
        });
    }

var retries = 0;
    app.capturePhoto = function(fileURI )   {
        var win = function (r) {
            app.clearCache();
            retries = 0;
            $("#progressview").hide();
            app.showAlert("Your photo was successfully uploaded", "Photo 
Upload");
            var listview = $("#lsPhotos").data("kendoMobileListView");
            listview.setDataSource(app.photoDataSource);
            app.photoDataSource.read();
        }

        var fail = function (error) {
            if (retries == 0) {
                retries ++
                setTimeout(function() {
                    app.capturePhoto(fileURI)
                }, 1000)
            } else {
                retries = 0;
                app.clearCache();
                $("#progressview").hide();
                app.showAlert("The photo could not be uploaded to the server.  
Please try again", "Photo Upload");
            }
        }
        $("#progressview").show();
        var fileUrl = "xxxxxxxxxxxx";
        var options = new FileUploadOptions();
        var prev_perc;
        options.fileKey = "file";
        options.fileName = mediaFiles[i].fullPath; // 
fileURI.substr(fileURI.lastIndexOf('/') + 1);
        options.mimeType = "image/jpeg";
        options.params = {}; // if we need to send parameters to the server 
request
        var ft = new FileTransfer();
        ft.onprogress = function(progressEvent) {
            if (progressEvent.lengthComputable) {
                var perc = Math.floor(progressEvent.loaded / 
progressEvent.total * 100);
                if(perc > prev_perc)    {
                    $("#progressview").text(options.fileName + ": " + perc + "% 
Uploaded");
                }
                prev_perc = perc;
            } 
            else {
                $("#progressview").text("Uploading Photo");
            }
        };
        ft.upload(fileURI, encodeURI(fileUrl), win, fail, options);       
    }
{code}

Click "Take Photo" button:
pr 15 11:14:13 Kentos-iPhone-5s kernel[0] <Debug>: 
AppleH6CamIn::setPowerStateGated: 1
Apr 15 11:14:13 Kentos-iPhone-5s kernel[0] <Debug>: 
AppleH6CamIn::power_on_hardware
Apr 15 11:14:13 Kentos-iPhone-5s kernel[0] <Debug>: 
AppleH6CamIn::ISP_SelectBestMIPIFrequencyIndex_gated - channel: 0, index: 2

Click "Cancel" on the camera view:
Apr 15 11:14:17 Kentos-iPhone-5s kernel[0] <Debug>: 
AppleH6CamIn::setPowerStateGated: 0
Apr 15 11:14:17 Kentos-iPhone-5s kernel[0] <Debug>: 
AppleH6CamIn::power_off_hardware

Immediately Click "Take Photo" again and the camera view appears with black 
screen

Camera now shows preview and can take a picture (20 seconds elapsed):
Apr 15 11:14:37 Kentos-iPhone-5s kernel[0] <Debug>: 
AppleH6CamIn::setPowerStateGated: 1
Apr 15 11:14:37 Kentos-iPhone-5s kernel[0] <Debug>: 
AppleH6CamIn::power_on_hardware
Apr 15 11:14:38 Kentos-iPhone-5s kernel[0] <Debug>: 
AppleH6CamIn::ISP_SelectBestMIPIFrequencyIndex_gated - channel: 0, index: 2

This happens in iOS 7.1 on both iPhone 5S and original iPhone 5 (enterprise 
user base). 

  was:
First time the camera is used it works fine.  However, if the user cancels or 
tries to take another picture the camera screen is black.  At this point it can 
take between 10-15 seconds before the camera preview appears and another 
picture can be taken.  Have tried all version of the camera plugin starting at 
0.2.5 (up to 0.2.9).   Here is the code and device logs:

Here is the function... there are no errors logged in console when called:
app.takePhoto = function() {
        navigator.camera.getPicture(app.capturePhoto, app.onFail, { 
            quality : 20, 
            destinationType : 1, 
            sourceType : 1,
            encodingType: Camera.EncodingType.JPEG,
            targetWidth: 1024
        });
    }

var retries = 0;
    app.capturePhoto = function(fileURI )   {
        var win = function (r) {
            app.clearCache();
            retries = 0;
            $("#progressview").hide();
            app.showAlert("Your photo was successfully uploaded", "Photo 
Upload");
            var listview = $("#lsPhotos").data("kendoMobileListView");
            listview.setDataSource(app.photoDataSource);
            app.photoDataSource.read();
        }

        var fail = function (error) {
            if (retries == 0) {
                retries ++
                setTimeout(function() {
                    app.capturePhoto(fileURI)
                }, 1000)
            } else {
                retries = 0;
                app.clearCache();
                $("#progressview").hide();
                app.showAlert("The photo could not be uploaded to the server.  
Please try again", "Photo Upload");
            }
        }
        $("#progressview").show();
        var fileUrl = "xxxxxxxxxxxx";
        var options = new FileUploadOptions();
        var prev_perc;
        options.fileKey = "file";
        options.fileName = mediaFiles[i].fullPath; // 
fileURI.substr(fileURI.lastIndexOf('/') + 1);
        options.mimeType = "image/jpeg";
        options.params = {}; // if we need to send parameters to the server 
request
        var ft = new FileTransfer();
        ft.onprogress = function(progressEvent) {
            if (progressEvent.lengthComputable) {
                var perc = Math.floor(progressEvent.loaded / 
progressEvent.total * 100);
                if(perc > prev_perc)    {
                    $("#progressview").text(options.fileName + ": " + perc + "% 
Uploaded");
                }
                prev_perc = perc;
            } 
            else {
                $("#progressview").text("Uploading Photo");
            }
        };
        ft.upload(fileURI, encodeURI(fileUrl), win, fail, options);       
    }

Click "Take Photo" button:
pr 15 11:14:13 Kentos-iPhone-5s kernel[0] <Debug>: 
AppleH6CamIn::setPowerStateGated: 1
Apr 15 11:14:13 Kentos-iPhone-5s kernel[0] <Debug>: 
AppleH6CamIn::power_on_hardware
Apr 15 11:14:13 Kentos-iPhone-5s kernel[0] <Debug>: 
AppleH6CamIn::ISP_SelectBestMIPIFrequencyIndex_gated - channel: 0, index: 2

Click "Cancel" on the camera view:
Apr 15 11:14:17 Kentos-iPhone-5s kernel[0] <Debug>: 
AppleH6CamIn::setPowerStateGated: 0
Apr 15 11:14:17 Kentos-iPhone-5s kernel[0] <Debug>: 
AppleH6CamIn::power_off_hardware

Immediately Click "Take Photo" again and the camera view appears with black 
screen

Camera now shows preview and can take a picture (20 seconds elapsed):
Apr 15 11:14:37 Kentos-iPhone-5s kernel[0] <Debug>: 
AppleH6CamIn::setPowerStateGated: 1
Apr 15 11:14:37 Kentos-iPhone-5s kernel[0] <Debug>: 
AppleH6CamIn::power_on_hardware
Apr 15 11:14:38 Kentos-iPhone-5s kernel[0] <Debug>: 
AppleH6CamIn::ISP_SelectBestMIPIFrequencyIndex_gated - channel: 0, index: 2

This happens in iOS 7.1 on both iPhone 5S and original iPhone 5 (enterprise 
user base). 


> navigator.camera.getPicture FILE_URI 20 second delay on second call
> -------------------------------------------------------------------
>
>                 Key: CB-6484
>                 URL: https://issues.apache.org/jira/browse/CB-6484
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: CLI, iOS, Plugin Camera
>    Affects Versions: 3.4.0
>         Environment: iOS 7.1 (iPhone 5 and iPhone 5s)
>            Reporter: Kent Spadzinski
>             Fix For: 3.4.0
>
>
> First time the camera is used it works fine.  However, if the user cancels or 
> tries to take another picture the camera screen is black.  At this point it 
> can take between 10-15 seconds before the camera preview appears and another 
> picture can be taken.  Have tried all version of the camera plugin starting 
> at 0.2.5 (up to 0.2.9).   Here is the code and device logs:
> Here is the function... there are no errors logged in console when called:
> {code}
> app.takePhoto = function() {
>         navigator.camera.getPicture(app.capturePhoto, app.onFail, { 
>             quality : 20, 
>             destinationType : 1, 
>             sourceType : 1,
>             encodingType: Camera.EncodingType.JPEG,
>             targetWidth: 1024
>         });
>     }
> var retries = 0;
>     app.capturePhoto = function(fileURI )   {
>         var win = function (r) {
>             app.clearCache();
>             retries = 0;
>             $("#progressview").hide();
>             app.showAlert("Your photo was successfully uploaded", "Photo 
> Upload");
>             var listview = $("#lsPhotos").data("kendoMobileListView");
>             listview.setDataSource(app.photoDataSource);
>             app.photoDataSource.read();
>         }
>         var fail = function (error) {
>             if (retries == 0) {
>                 retries ++
>                 setTimeout(function() {
>                     app.capturePhoto(fileURI)
>                 }, 1000)
>             } else {
>                 retries = 0;
>                 app.clearCache();
>                 $("#progressview").hide();
>                 app.showAlert("The photo could not be uploaded to the server. 
>  Please try again", "Photo Upload");
>             }
>         }
>         $("#progressview").show();
>         var fileUrl = "xxxxxxxxxxxx";
>         var options = new FileUploadOptions();
>         var prev_perc;
>         options.fileKey = "file";
>         options.fileName = mediaFiles[i].fullPath; // 
> fileURI.substr(fileURI.lastIndexOf('/') + 1);
>         options.mimeType = "image/jpeg";
>         options.params = {}; // if we need to send parameters to the server 
> request
>         var ft = new FileTransfer();
>         ft.onprogress = function(progressEvent) {
>             if (progressEvent.lengthComputable) {
>                 var perc = Math.floor(progressEvent.loaded / 
> progressEvent.total * 100);
>                 if(perc > prev_perc)    {
>                     $("#progressview").text(options.fileName + ": " + perc + 
> "% Uploaded");
>                 }
>                 prev_perc = perc;
>             } 
>             else {
>                 $("#progressview").text("Uploading Photo");
>             }
>         };
>         ft.upload(fileURI, encodeURI(fileUrl), win, fail, options);       
>     }
> {code}
> Click "Take Photo" button:
> pr 15 11:14:13 Kentos-iPhone-5s kernel[0] <Debug>: 
> AppleH6CamIn::setPowerStateGated: 1
> Apr 15 11:14:13 Kentos-iPhone-5s kernel[0] <Debug>: 
> AppleH6CamIn::power_on_hardware
> Apr 15 11:14:13 Kentos-iPhone-5s kernel[0] <Debug>: 
> AppleH6CamIn::ISP_SelectBestMIPIFrequencyIndex_gated - channel: 0, index: 2
> Click "Cancel" on the camera view:
> Apr 15 11:14:17 Kentos-iPhone-5s kernel[0] <Debug>: 
> AppleH6CamIn::setPowerStateGated: 0
> Apr 15 11:14:17 Kentos-iPhone-5s kernel[0] <Debug>: 
> AppleH6CamIn::power_off_hardware
> Immediately Click "Take Photo" again and the camera view appears with black 
> screen
> Camera now shows preview and can take a picture (20 seconds elapsed):
> Apr 15 11:14:37 Kentos-iPhone-5s kernel[0] <Debug>: 
> AppleH6CamIn::setPowerStateGated: 1
> Apr 15 11:14:37 Kentos-iPhone-5s kernel[0] <Debug>: 
> AppleH6CamIn::power_on_hardware
> Apr 15 11:14:38 Kentos-iPhone-5s kernel[0] <Debug>: 
> AppleH6CamIn::ISP_SelectBestMIPIFrequencyIndex_gated - channel: 0, index: 2
> This happens in iOS 7.1 on both iPhone 5S and original iPhone 5 (enterprise 
> user base). 



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to