nativeScript-camera-plus-fixed-distorted
为 NativeScript 提供的高级嵌入式相机。
npm i --save nativescript-camera-plus-fixed-distorted

NativeScript Camera Plus

一个集所有功能于一体的 NativeScript 相机,可以嵌入到视图中。本插件由 LiveShopper 赞助。

LiveShopper Logo

npm npm stars forks license

nStudio banner

您需要项目或插件的帮助吗?随时联系 nStudio 团队 [email protected],以了解移动和 Web 应用程序开发的最佳实践。


安装

tns plugin add @nstudio/nativescript-camera-plus

示例

是的,相机已旋转,因为它是一个连接到模拟器的网络摄像头,这就是生活的样子

Camera Plus

演示

演示应用程序在真实设备上运行最佳。您可以从中启动它们,但是相机在 iOS 模拟器上无法工作。如果您启用网络摄像头,Android 模拟器将可以使用相机。

Android 模拟器注意

在模拟器上使用的网络摄像头中的相机可能被侧向旋转(不正确)。实际相机输出将正确定位,只是模拟器上的预览不正确。由于设备上的相机定位正确,计算机中的网络摄像头,因此这个问题在真实设备上不应该出现。

注意:您可能需要先运行: npm run nuke 来清除和重置目录。

运行纯示例

将设备连接,然后

npm run demo.ios.device
// or...
npm run demo.android.device

运行 Angular 示例

将设备连接,然后

npm run demo.ng.ios.device
// or...
npm run demo.ng.android.device

属性

名称 类型 描述
debug 布尔值 如果为 true,将在控制台输出日志以帮助调试 Camera Plus 事件。
confirmPhotos 布尔值 如果为 true,默认拍照事件在保存之前将显示确认对话框。默认为 true。
confirmRetakeText 字符串 当确认捕获时,此文本将向用户显示以重新拍摄照片。默认为 '重拍'。
confirmSaveText 字符串 当确认捕获时,此文本将向用户显示以保存照片。默认为 '保存'。
saveToGallery 布尔值 如果为 true,默认拍照事件将保存到设备图库。默认为 true。
galleryPickerMode 字符串 图库/库选择模式。'single' 允许选择一张图片。'multiple' 允许多张图片。默认为 'multiple'。
showFlashIcon 布尔值 如果为 true,默认闪光灯切换图标/按钮将显示在 Camera Plus 布局中。默认为 true。
showToggleIcon 布尔值 如果为 true,默认相机切换(前/后)图标按钮将显示在 Camera Plus 布局中。默认为 true。
showCaptureIcon 布尔值 如果为 true,默认捕获(拍照)图标/按钮将显示在 Camera Plus 布局中。默认为 true。
showGalleryIcon 布尔值 如果为 true,从图库/库中选择图标/按钮将显示在 Camera Plus 布局中。默认为 true。
enableVideo 布尔值 如果为 true,CameraPlus 实例可以录制视频,视频将在图库中显示。

静态属性

注意:这些属性需要在初始化相机之前设置。用户应在创建组件之前将这些设置在组件构造函数中,如果希望更改默认值。对于 enableVideo,如果静态属性或组件属性为 true,则为 true。

名称 类型 描述
enableVideo 布尔值 视频支持(默认关闭)。在要在不同视图中之间来回切换照片/相机和视频/相机之前可以重置它。
defaultCamera 相机类型 启动时正确默认设置相机。默认 'rear'。也可以设置为 'front''rear'

仅适用于Android的属性

名称 类型 描述
闪光灯开图标 字符串 当闪光灯开启(启用)时,原生图像按钮的app_resource drawable名称。
闪光灯关图标 字符串 当闪光灯关闭(禁用)时,原生图像按钮的app_resource drawable名称。
切换相机图标 字符串 切换相机按钮的app_resource drawable名称。
拍照图标 字符串 拍照(捕获)按钮的app_resource drawable名称。
相册图标 字符串 打开相册(图像库)按钮的app_resource drawable名称。
自动对焦 布尔值 如果为true,相机将在检测到目标变化时使用连续对焦。

仅适用于iOS的属性

名称 类型 描述
双击相机切换 布尔值 启用/禁用双击手势来切换相机。(启用)

跨平台公共方法

方法 描述
isCameraAvailable() 如果设备至少有一个相机,则返回true。
toggleFlash() 切换活动相机的闪光灯模式。
toggleCamera() 切换设备上的活动相机。
chooseFromLibrary(opts?: IChooseOptions) 打开设备相册(图像库)以选择图像。
takePicture(opts?: ICaptureOptions) 在CameraPlus当前预览中拍照。
getFlashMode(): string Android:可能的字符串:https://developer.android.com.cn/reference/android/hardware/Camera.Parameters.html#getFlashMode() iOS:可以是 'on''off'
record(opts?: IVideoOptions) 开始录制视频。
stop() 停止视频录制,停止后将会发出 videoRecordingReadyEvent 事件。

仅适用于Android的公共方法

方法 描述
requestCameraPermissions(explanationText?: string) 提示用户授予使用设备相机的运行时权限。返回一个Promise.
hasCameraPermission() 如果应用已被授予访问设备相机的权限,则返回true。
requestStoragePermissions(explanationText?: string) 提示用户授予使用外部存储保存和从设备相册打开图像的运行时权限。返回一个Promise.
hasStoragePermissions() 如果应用已被授予访问设备存储的权限,则返回true。
getNumberOfCameras() 返回设备上的相机数量。
hasFlash() 如果活动相机有闪光灯模式,则返回true。

事件

名称 描述
errorEvent 当CameraPlus发出错误时执行。
photoCapturedEvent 拍照时执行。
toggleCameraEvent 设备相机切换时执行。
imagesSelectedEvent 从设备库/相册中选择图像时执行。
videoRecordingStartedEvent 视频开始录制时执行。
videoRecordingFinishedEvent 视频停止录制但尚未处理时执行。
videoRecordingReadyEvent 视频完成处理并准备好使用时执行。
confirmScreenShownEvent 图片确认对话框显示时执行。
confirmScreenDismissedEvent 图片确认对话框通过重拍或保存按钮取消时执行。

选项接口

export interface ICameraOptions {
confirm?: boolean;
saveToGallery?: boolean;
keepAspectRatio?: boolean;
height?: number;
width?: number;
autoSquareCrop?: boolean;
confirmRetakeText?: string;
confirmSaveText?: string;
}
export interface IChooseOptions {
width?: number;
height?: number;
keepAspectRatio?: boolean;
showImages?: boolean;
showVideos?: boolean;
}
export interface IVideoOptions {
confirm?: boolean;
saveToGallery?: boolean;
height?: number;
width?: number;
}