nativeScript-na-camera
NativeScript 相机插件
npm i --save nativescript-na-camera

NativeScript NA Camera 插件

Demo screenshot (iOS)

注意!目前不支持 Android。

一个使用 AVFoundation 为 iOS 的 NativeScript 相机。

安装

$ tns plugin add nativescript-na-camera

使用方法

XML

<Page navigatingTo="navigatingTo" xmlns:NACamera="nativescript-na-camera">
<StackLayout>
<NACamera:Camera id="cameraPreview" />
<Button text="Capture" id="capturePhoto" tap="capturePhoto" />
<Button text="New photo" id="newPhoto" tap="newPhoto" />
</StackLayout>
</Page>

JS

var NACamera = require("nativescript-na-camera");

var page;

exports.navigatingTo = function(args) {
page = args.object;

NACamera.start();
};

exports.capturePhoto = function(args) {
NACamera.capturePhoto({
saveToLibrary: true
}).then(function(image, savedToLibrary) {
NACamera.stop();
if(savedToLibrary) console.log("Photo was saved to library!");
// Do something more...
}, function(error) {
console.error(error);
});
};

exports.newPhoto = function(args) {
NACamera.start();
};

注意! NACamera.start() 必须被触发以启动相机预览。一旦预览在 UI 中不可见,建议使用 NACamera.stop() 停止相机。

方法

capturePhoto()

捕获照片。

捕获照片的分辨率是相机预览的比例。

capturePhoto(props)

  • props - 设置任何捕获属性(可选)。
    • saveToLibrary - 在捕获后保存照片到图库(默认为 false)。
    • mirrorCorrection - 当使用前置摄像头捕获时纠正镜像(默认为 true)。
    • playSound - 播放捕获声音(默认为 true)。
    • simulatorDebug - 用于测试无法获取摄像头设备的模拟器(默认为 false)。
    • simulatorImage - 图像源(默认为空字符串)。
  • 返回一个 then promise
    • resolve
      • image - 捕获的照片作为图像源。
      • savedToLibrary - 对 props.saveToLibrary 的引用,可以是 truefalse
    • reject
      • error - 错误信息。
NACamera.capturePhoto({
saveToLibrary: true
}).then(function(image, savedToLibrary) {
NACamera.stop();
if(savedToLibrary) console.log("Photo was saved to library!");
// Do something more...
}, function(error) {
console.error(error);
});

saveToLibrary()

将图像保存到图库。

saveToLibrary(image)

  • image - 应该保存到图库的图像源。
  • 返回 true
NACamera.saveToLibrary(image);

setTorchMode()

设置手电筒模式(如果可用)。

setTorchMode(condition)

  • condition - 布尔值。
  • 根据可用性返回 truefalse
NACamera.setTorchMode(true); // Torch on
NACamera.setTorchMode(false); // Torch off

setFlashMode()

设置闪光灯模式(如果可用)。

setFlashMode(condition)

  • condition - 布尔值。
  • 根据可用性返回 truefalse
NACamera.setFlashMode(true); // Flash on
NACamera.setFlashMode(false); // Flash off

setDevicePosition()

设置摄像头设备位置(后置或前置摄像头,如果可用)。

setDevicePosition(position)

  • position - 字符串值。必须是 "back""front"
  • 根据可用性返回 truefalse
NACamera.setDevicePosition("back"); // Back camera
NACamera.setDevicePosition("front"); // Front camera

hasDevicePosition()

检查摄像头设备位置是否可用。

hasDevicePosition(position)

  • position - 字符串值。必须是 "back""front"
  • 根据可用性返回 truefalse
var hasBackCamera = NACamera.hasDevicePosition("back");
var hasFrontCamera = NACamera.hasDevicePosition("front");

其他方法

  • start() - 开始相机会话。
    • 返回 boolean
  • stop() - 停止相机会话。
    • 返回 boolean
  • devicesAvailable() - 检查是否有任何摄像头可用。
    • 返回 boolean
  • getTorchMode() - 获取当前手电筒模式。
    • 返回 boolean
  • hasTorchMode() - 检查当前设备位置是否具有手电筒。
    • 返回 boolean
  • getFlashMode() - 获取当前闪光灯模式。
    • 返回 boolean
  • hasFlashMode() - 检查当前设备位置是否具有闪光灯。
    • 返回 boolean
  • getDevicePosition() - 检查当前设备位置是否为后置或前置。
    • 返回 "back""front"

已知问题

  • 目前不支持 Android 兼容性。

待办事项列表

  • 视频录制

如果您有其他想法,请提交问题!

历史记录

版本 1.1.0(2016 年 11 月 21 日)

  • 捏合缩放功能
  • 点击对焦功能
  • 在捕获前置摄像头时添加了镜像纠正属性(见 capturePhoto() 文档)。

版本 1.0.0(2016 年 11 月 10 日)

  • 首次发布!

鸣谢

许可

MIT - 用于 {N} 版本 2.0.0+