首页 文章

如何使用Cordova Camera Plugin拍摄多张照片

提问于
浏览
7

我一直在Android上进行测试,我的目标是使用Cordova相机或Media Capture拍摄多张照片,然后将它们保存到可以自动更正/修复方向的图库中 . 后退按钮与媒体捕获一起取消了拍照会话,但似乎保存照片而没有更正的方向 . 如果我使用相机插件拍照,我会得到我需要的照片,但我一次只能拍一张照片 . 有没有办法将navigator.camera.getPicture包装到一个循环中,该循环将拍摄照片,直到应用取消/返回按钮 . 似乎该函数是异步的,无论方法如何,我都无法使其工作 .

奇怪的是,如果我使用文件管理器手动将媒体捕获插件保存的文件复制到图库或同一文件夹中,则更正方向 .

更新:我通过调用函数在成功事件中再次拍照来解决它 .

function takePicture(){

navigator.camera.getPicture( cameraSuccess, cameraError, {
        quality: 50,
        destinationType: Camera.DestinationType.FILE_URI,
        correctOrientation: true,
        saveToPhotoAlbum: true
    }); 

}

function cameraSuccess(uri){   
    //alert(uri);
    takePicture();    
}

function cameraError(message){
    alert("Canceled!"); 
}

$('#ThumbnailTest_buttonTakePhotosNow').click(function(){
    takePicture();
});

1 回答

  • 0

    OP提到问题中的解决方案所以我认为最好添加为答案:

    您可以通过调用函数在成功事件中再次拍照来完成此操作 .

    function takePicture(){
    
    navigator.camera.getPicture( cameraSuccess, cameraError, {
            quality: 50,
            destinationType: Camera.DestinationType.FILE_URI,
            correctOrientation: true,
            saveToPhotoAlbum: true
        }); 
    
    }
    
    function cameraSuccess(uri){   
        //alert(uri);
        takePicture();    
    }
    
    function cameraError(message){
        alert("Canceled!"); 
    }
    
    $('#ThumbnailTest_buttonTakePhotosNow').click(function(){
        takePicture();
    });
    

相关问题