跳过主要内容
@capgo/相机预览 媒体 开源

相机预览 Capacitor 插件

以可定制控件和捕获功能为界面的实时相机预览

安装

bun add @capgo/camera-preview bunx cap sync
npm、pnpm 或 yarn
  • npm install @capgo/camera-preview
  • pnpm add @capgo/camera-preview
  • yarn add @capgo/camera-preview

指南

如何使用Capacitor中的相机预览

在设备上测试

下载Capgo应用程序,然后扫描QRcode

相机预览插件预览QRcode

使用@capgo/camera-preview

相机预览插件的主要界面

安装

bun add @capgo/camera-preview
bunx cap sync

bunx cap sync 将插件的本机code复制到您的本机项目中。每次升级插件后,请重新运行它。

导入

import { CameraPreview } from '@capgo/camera-preview';

API概览

方法 描述
start 启动相机预览
stop 停止相机预览
capture 从相机捕获照片
captureSample 从相机预览流中捕获单帧
startBarcodeScanner 在活动相机预览上启动条形码扫描
stopBarcodeScanner 在保持相机预览运行的情况下停止条形码扫描
getSupportedFlashModes 获取活动相机支持的闪光模式
setAspectRatio 设置相机预览的比例
getAspectRatio 获取相机预览的当前比例
setGridMode 设置相机预览覆盖层的网格模式
getGridMode 获取相机预览覆盖层的当前网格模式
checkPermissions 检查当前相机(可选微机)权限状态,无提示系统对话
requestPermissions 请求相机(可选微机)权限。如果权限已被授予或拒绝,则返回当前状态,无提示 showSettingsAlert 当为真且权限被拒绝时,会显示一个平台特定的提示,指导用户到应用设置
getHorizontalFov 获取当前激活相机的水平视野(FoV)。注意:在某些设备上,这可能是一个估计值
getSupportedPictureSizes 获取所有相机支持的图片尺寸
setFlashMode 设置当前激活相机的闪光模式
flip 切换前后摄像头
setOpacity 设置相机预览的透明度
stopRecordVideo 停止当前正在进行的视频录制。
startRecordVideo 开始录制视频。
setVideoQuality 设置当前摄像头会话的视频录制质量。
getVideoQuality 获取当前视频录制质量。
getSupportedVideoQualities 获取当前摄像头支持的视频质量。
setVideoCodec 设置用于录制的视频编码器。
getVideoCodec 获取当前用于录制的视频编码器。
getSupportedVideoCodecs 获取当前摄像头支持的视频编码器。
isVideoStabilizationSupported 检查当前摄像头是否支持视频稳定。
getSupportedVideoStabilizationModes 获取当前摄像头支持的视频稳定模式。
getVideoStabilizationMode 获取当前视频稳定模式。
setVideoStabilizationMode 设置用于录制的视频稳定模式。不能在录制过程中更改。您也可以传递 videoStabilizationMode 是否开启 startRecordVideo() 选项。
isRunning 检查摄像头预览是否正在运行。
getAvailableDevices 获取所有可用的摄像头设备。
getZoom 获取当前的缩放状态,包括最小值/最大值和当前镜头信息。
getZoomButtonValues 返回缩放按钮值以快速切换。 - iOS/Android:包含超广角可用时 0.5;宽广可用时 1 和 2;望远镜可用时 3 - Web:不支持。
setZoom 设置摄像头的缩放级别。
getFlashMode 获取当前闪光模式。
setDeviceId 切换到指定的摄像头。 deviceId.
getDeviceId 获取当前绑定的摄像头设备 ID。 在 Android 上,如果物理镜头请求 fallback 到逻辑摄像头,这将返回绑定的逻辑摄像头 ID。
getPreviewSize 获取当前预览大小和位置。
setPreviewSize 设置预览大小和位置。
setFocus 设置预览中的特定点的相机焦距。
deleteFile 删除设备上的绝对路径下的文件。使用此功能快速清理使用 storeToFile删除
getSafeAreaInsets 获取设备的安全区域边距。返回设备的方向感知的凹口/摄像头切口边距和当前方向。在竖屏模式下:返回顶部边距(凹口位于顶部)。在横屏模式下:返回左边距(凹口移动到侧面)。此功能专门针对现代手机的凹口区域(凹口,孔洞等)。
getOrientation 获取当前设备方向。
getExposureModes 获取设备的方向。
getExposureMode 获取设备的方向。
setExposureMode 获取设备的方向。
getExposureCompensationRange 获取设备的方向。
getExposureCompensation 获取设备的方向。
setExposureCompensation 获取设备的方向。
getWhiteBalanceModes 获取设备的方向。 CUSTOM 不在列表中,直到手动支持被实现。
getWhiteBalanceMode 返回当前白平衡模式。
setWhiteBalanceMode 设置白平衡模式。 CONTINUOUS 保持自动白平衡运行(推荐;避免暖黄色调), LOCK 冻结当前增益 AUTO 执行一次性调整。 CUSTOM 保留并拒绝,直到手动增益支持被实现。
getSupportedVideoFrameRates 列出支持的视频帧率,取决于选中的摄像头、镜头和视频质量。
getVideoFrameRate 返回配置的视频帧率。Android上实际录制帧率可能在低光或热压下会有所不同。
setVideoFrameRate 设置目标视频帧率。推荐在开始录制时传递 frameRate to startRecordVideo() Live Update

示例

start()

启动相机预览

import { CameraPreview } from '@capgo/camera-preview';

const result = await CameraPreview.start({ parent: 'parent' });
console.log(result);

stop()

停止相机预览

import { CameraPreview } from '@capgo/camera-preview';

await CameraPreview.stop();

capture()

从相机捕获照片

import { CameraPreview } from '@capgo/camera-preview';

const result = await CameraPreview.capture({ height: 1920 });
console.log(result);

captureSample()

从相机预览流中捕获单帧

import { CameraPreview } from '@capgo/camera-preview';

const result = await CameraPreview.captureSample({
  quality: 85,
  mirrorFrontCamera: false,
});
console.log(result);

startBarcodeScanner()

在活跃相机预览上启动条形码扫描

import { CameraPreview } from '@capgo/camera-preview';

await CameraPreview.startBarcodeScanner();

stopBarcodeScanner()

在保持相机预览运行的情况下停止条形码扫描

import { CameraPreview } from '@capgo/camera-preview';

await CameraPreview.stopBarcodeScanner();

上表列出了56个核心方法。监听器和版本帮助,以及每个方法的完整契约,均在 GitHub 仓库.

监听事件

addListener 返回句柄。请在屏幕卸载时调用 handle.remove() 示例 CameraPreview.removeAllListeners() 为了清除所有监听器。

完整参考

继续使用 @capgo/camera-preview

如果您正在使用 使用 @capgo/camera-preview 为了计划原生媒体和界面行为,连接它与 @capgo/相机预览 在 @capgo/camera-preview 中了解实现细节 开始使用 为《开始使用》中的实现细节 使用@capgo/capacitor-live-activities 为《使用@capgo/capacitor-live-activities》中的原生能力 @capgo/capacitor-live-activities 为《使用@capgo/capacitor-live-activities》中的实现细节,以及 使用@capgo/capacitor-video-player 为《使用@capgo/capacitor-video-player》中的原生能力

常见问题

Camera Preview 插件常见问题

如何在 Capacitor 应用中安装 Camera Preview 插件?

运行 "bun add @capgo/camera-preview" (或 "npm install @capgo/camera-preview"),然后运行 "bunx cap sync" 以便 iOS 和 Android 项目捕获 native code。从 "@capgo/camera-preview" 导入它到你的应用 code 中。

@capgo/camera-preview 与 React、Vue 和 Angular 是否兼容?

是的。Camera Preview 是一个 Capacitor 包,适用于任何运行在 Capacitor 内的 web 框架,包括 Ionic、React、Vue、Angular、Svelte 和普通 JavaScript。

@Capacitor 的哪个版本支持 @capgo/camera-preview?

Capgo 插件遵循 Capacitor 的主要版本:使用与 Capacitor 主要版本匹配的插件版本(例如,插件 v8 与 Capacitor 8 相同)。兼容性表格在 GitHub README 中列出维护的版本。

capgo/camera-preview 是否免费和开源?

是。code 的源代码在 GitHub 上公开,https://github.com/Cap-go/capacitor-camera-preview/,并且可以从 npm 免费安装。欢迎bug报告和pull请求。

code 使用 Camera Preview 是否可以在 App Store 中更新?

安装或升级插件会更改本机 code,因此需要新建一个商店。之后,使用 Capgo 实时更新的 JavaScript、HTML 和 CSS 变更可以立即发布。

不必等待应用程序审查就可以将摄像头预览的更改推送到商店

一旦插件在您的商店构建中,Capgo实时更新将将您的JavaScript、HTML和CSS更改推送给用户几分钟内。

开始使用Capgo