使用 Ionic 使用相机拍摄多张照片

Posted

技术标签:

【中文标题】使用 Ionic 使用相机拍摄多张照片【英文标题】:Taking multiple picture with camera using Ionic 【发布时间】:2018-12-20 02:51:44 【问题描述】:

我们的应用程序需要拍摄多张图像,然后在用户完成后显示它们以供上传,这在 iosandroid 相机上是否可行。没有看到任何例子。 我看过很多 Cordova 插件,似乎都支持拍摄一张图片或从图库中选择多张,不允许使用相机拍摄多张图片。

如果您已经这样做或知道这是否可行,请提供帮助

【问题讨论】:

你可以使用cordova-plugin-media-capture插件 【参考方案1】:

您可以使用 cordova-plugin-media-capture 插件。此插件提供对设备的音频、图像和视频捕获功能的访问。

capture.captureImage

启动相机应用程序并返回有关捕获的图像文件的信息。

navigator.device.capture.captureImage( CaptureCB captureSuccess, CaptureErrorCB captureError, [CaptureImageOptions 选项] );

说明

使用设备的相机应用程序启动异步操作以捕获图像。该操作允许用户在单个会话中捕获多个图像。

当用户关闭相机应用程序或达到 CaptureImageOptions.limit 指定的最大记录数时,捕获操作结束。如果未指定限制值,则默认为一 (1),并且在用户捕获单个图像后捕获操作终止。

当捕获操作完成时,它会调用 CaptureCB 回调,其中包含描述每个捕获的图像文件的 MediaFile 对象数组。如果用户在捕获图像之前终止操作,则 CaptureErrorCB 回调将使用具有 CaptureError.CAPTURE_NO_MEDIA_FILES 错误代码的 CaptureError 对象执行。

Example

  // capture callback
var captureSuccess = function(mediaFiles) 
    var i, path, len;
    for (i = 0, len = mediaFiles.length; i < len; i += 1) 
        path = mediaFiles[i].fullPath;
        // do something interesting with the file
    
;

// capture error callback
var captureError = function(error) 
    navigator.notification.alert('Error code: ' + error.code, null, 'Capture Error');
;

// start image capture
navigator.device.capture.captureImage(captureSuccess, captureError, limit:2);

【讨论】:

iOS 上的多张图像捕获不起作用。在文档本身中是这样说的。 iOS 怪癖 - “不支持限制参数,每次调用只拍摄一张图像。”

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

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

在拍摄多张照片时反应原生路由器通量和反应原生相机问题

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

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

Ionic 框架拍摄实时视频

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