npm i --save nativescript-videorecorder-x
- 版本:1.0.4
- GitHub:
- NPM: https://npmjs.net.cn/package/nativescript-videorecorder-x
- 下载
- 昨天: 10
- 上周: 70
- 上个月: 358
NativeScript VideoRecorder
此插件源自 nativescript-videorecorder,仅对 AndroidX 进行了修改。一旦 nativescript-videorecorder 插件更新,此插件将被弃用。
安装
tns plugin add nativescript-videorecorder-x
快速入门
JavaScript
var vr = require('nativescript-videorecorder-x');
var options = {
saveToGallery: true,
duration: 30,
format: 'mp4',
size: 10,
hd: true,
explanation: 'Why do i need this permission'
}
var videorecorder = new vr.VideoRecorder(options);
videorecorder.record().then((data)=>{
console.log(data.file)
}).catch((err)=>{
console.log(err)
})
TypeScript
import { VideoRecorder, Options as VideoRecorderOptions } from 'nativescript-videorecorder-x';
const options: VideoRecorderOptions = {
hd: true
saveToGallery: true
}
const videorecorder = new VideoRecorder(options)
videorecorder.record().then((data) => {
console.log(data.file)
}).catch((err) => {
console.log(err)
})
VideoRecorder
选项
可以将选项对象作为 VideoRecorder
构造函数参数或作为 VideoRecorder::record
参数(作为覆盖)提供。
- hd?: boolean - 如果为 true,则使用设备最高质量,如果为 false 则为 MMS 质量(默认:
false
) - saveToGallery?: boolean - 启用将视频保存到设备图库,否则将存储在应用的沙盒中(默认:
false
) - duration?: number - 限制视频时长,0 为无限(默认:
0
) - position?: 'front' | 'back' | 'none' - 强制使用哪个设备摄像头,
'none'
为无偏好(默认:none
)
Android 附加参数
- size?: number - 限制视频大小,0 为无限(默认:
0
) - explanation?: string - 为什么应该接受权限,API > 23 为可选
iOS 附加参数
- format?: 'default' | 'mp4' - 允许在 Android 设备上播放视频(默认:
'default'
),推荐用于跨平台应用
VideoRecorder 属性
- options: Options 选项对象(见上面章节),可以从构造函数设置
VideoRecorder 方法
- record(options?: Options): Promise<{ file?: string } > 返回一个包含文件路径(作为
file
键)的对象的 Promise。如果视频已保存到图库,则可能不存在。可以提供一个可选的options
参数以覆盖实例options
,这已被弃用。 - requestPermissions(): Promise
返回一个 Promise,如果权限正常则解析,如果用户未接受权限则拒绝。此方法在 record()
中隐式调用 - isAvailable(): boolean 检查设备是否有摄像头且与选项中设置兼容
上述 Promise 可以因以下原因被拒绝:
{ event: 'denied'}
- 权限未被接受{ event: 'cancelled'}
- 视频捕获被取消{ event: 'failed'}
- 通用错误
AdvancedVideoView
AdvancedVideoView 不打开设备摄像头应用,而是允许你在应用中嵌入摄像头视图。然后你可以添加按钮以开始/停止录制。它允许更深入的 UI 定制。
<Page xmlns="http://schemas.nativescript.org/tns.xsd" xmlns:recorder="nativescript-videorecorder-x/advanced">
<recorder:AdvancedVideoView quality="highest" cameraPosition="front" id="camera"/>
const advancedView = page.getViewById("camera");
advancedView.startRecording();
API
方法 | 默认 | 类型 | 描述 |
---|---|---|---|
start() | void | 开始摄像头预览 | |
stop() | void | 停止摄像头预览 | |
startRecording() | void | 开始录制摄像头预览。 | |
stopRecording() | void | 停止录制摄像头预览。 | |
toggleCamera() | void | 在前后摄像头之间切换。 | |
toggleTorch() | void | 切换手电筒(目前仅限 iOS) | |
duration | int | 获取当前录制视频的时长。 | |
cameraPosition | BACK | void | 获取或设置摄像头位置 |
outputOrientation | PORTRAIT | void | 获取或设置输出视频方向 |
isTorchAvailable | 布尔型 | 只读:此摄像头是否支持火炬 | |
火炬 | false | 布尔型 | 启用/禁用火炬(目前仅限iOS) |
质量 | MAX_480P | void | 获取或设置视频质量 |
outputOrientation
请注意,录制时不要更改方向,这不受支持。
可能的值:portrait
、portraitUpsideDown
、landscapeLeft
、landscapeRight
,您也可以使用Orientation
枚举。
此属性允许您正确管理输出文件的方向,这意味着您可以信任您的重力传感器检测方向并在相机上设置它。有了这个,您可以在设备方向锁定时正确更改方向。