如何使用 Cordova 相机插件拍摄多张照片

Posted

技术标签:

【中文标题】如何使用 Cordova 相机插件拍摄多张照片【英文标题】:How to take Multiple photo using Cordova Camera Plugin 【发布时间】:2015-07-17 09:18:54 【问题描述】:

我一直在 android 上进行测试,我的目标是使用 Cordova Camera 或 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();
);

【问题讨论】:

试试这个插件plugins.cordova.io/#/package/com.synconset.imagepickerplugins.cordova.io/#/package/com.synconset.imagepickerex 【参考方案1】:

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();
);

【讨论】:

以上是关于如何使用 Cordova 相机插件拍摄多张照片的主要内容,如果未能解决你的问题,请参考以下文章

离子:每张照片/拍摄多张照片后,相机都会要求确认

如何更改 Cordova 相机插件选项

拍摄照片后,Ionic cordova 相机插件间歇性崩溃(使用 Firebase 图像上传)

如何在 iOS8.1 上使用 Swift 按顺序拍摄多张照片(每张延迟 1 秒)?

如何使用Android中的Camera2 API在不预览的情况下拍摄多张照片?

使用相机插件拍摄新照片时,PhoneGap 应用程序崩溃