npm i --save nativescript-danem-videorecord
- 版本:1.0.1
- GitHub: https://github.com/j20mc/Nativescript-Danem-Google-Maps-Utils
- NPM: https://npmjs.net.cn/package/nativescript-danem-videorecord
- 下载
- 昨日:6
- 上周:24
- 上个月:116
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 } > 返回一个 Promise,其中包含作为
file
键的文件路径对象。如果视频已保存到相册,则可能不存在。可以提供一个可选的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) | |
录制时长 | 整型 | 获取当前录制视频的时长。 | |
相机位置 | 后置 | void | 获取或设置相机位置 |
输出方向 | 纵向 | void | 获取或设置输出视频方向 |
torch可用性 | 布尔型 | 只读:此相机是否支持torch | |
torch | 否 | 布尔型 | 启用/禁用torch(目前仅限iOS) |
质量 | MAX_480P | void | 获取或设置视频质量 |
输出方向
请注意,在录制过程中不要改变方向,这是不支持的。
可能值: portrait
、portraitUpsideDown
、landscapeLeft
、landscapeRight
,您还可以使用 Orientation
枚举。
此属性允许您正确管理输出文件的方向,这意味着您可以通过信任您的重力感应器来检测方向并在相机上设置它。有了这个,即使设备方向锁定,您也可以正确地改变方向。