更新记录
1.0.2(2020-06-28)
添加自定义分辨率
1.0.1(2020-06-15)
发布
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
√ | armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 | × |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
使用方法
原生组件只能在 nvue 页面或者 nvue子窗体 中使用
基于网易云信开发的SDK
闪退时请检查是否有摄像头和录音权限。
小部分安卓可能本来就存在几率闪退,正常手机一般不会出现闪退。
所有接口都基于 预览窗口 组件,按照下面引用方式,使用 this.$refs 调用
引用方式
<Fvv-UniYXVideo ref="videoTest" style="width:100px;height:100px"></Fvv-UniYXVideo>
API
//初始化sdk和预览界面
init(options,callback)
initCustom(options,callback)
stopPreview()
//推流录像
startStream(options)
pauseVideoLiveStream()
resumeVideoLiveStream()
stopStream()
screenShot(savePath)
//滤镜相关
setFilterType(filterType)
setFilterStrength(int)
setBeautyLevel(int)
//镜头相关
setCameraFlashPara(bool)
setCameraFocus()
setCameraAutoFocus(bool)
switchCamera()
changeCaptureFormat(options)
changeCaptureCustom(options)
setPreviewMirror(bool)
setVideoMirror(bool)
//缩放相关
getCameraZoomValue()
getCameraMaxZoomValue()
setCameraZoomPara(int)
//曝光相关
getExposureCompensation()
getMinExposureCompensation()
getMaxExposureCompensation()
setExposureCompensation(int)
//伴音相关
startPlayMusic(options)
stopPlayMusic()
pausePlayMusic()
resumePlayMusic()
//水印相关
watermark(options)
removeWatermark()
watermarkGif()
removeWaterMarkGif()
setWaterPreview()
setDynamicWaterPreview()
初始化sdk和预览界面
init(options,callback)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
options | object | 是 | 初始化参数 |
callback | function | 否 | 消息回调 |
options
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
frontCamera | bool | 否 | 是否前置摄像头,默认false |
isScale_16x9 | bool | 否 | 界面是否16:9,默认false |
useFilter | bool | 否 | 是否使用滤镜,默认true |
zoom | bool | 否 | 是否支持手势缩放,默认true |
videoQuality | string | 否 | 清晰度,默认HIGH,可选MEDIUM,SUPER_HIGH,SUPER,HD1080P |
uploadLog | bool | 否 | 设置是否上传日志 |
callback(object)
参数 | 类型 | 说明 |
---|---|---|
object.code | int | 回调码,参考 云信回调状态码,这里添加了小部分状态码 |
object.data | object/string | 回调内容 |
示例
this.$refs.videoTest.init({
zoom:true,
isScale_16x9:false,
},(callback) => {
this.ret += (JSON.stringify(callback) + "\r\n")
})
初始化sdk和自定义预览界面
initCustom(options,callback)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
options | object | 是 | 初始化参数 |
callback | function | 否 | 消息回调 |
options
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
frontCamera | bool | 否 | 是否前置摄像头,默认false |
useFilter | bool | 否 | 是否使用滤镜,默认true |
zoom | bool | 否 | 是否支持手势缩放,默认true |
width | int | 否 | 宽度分辨率,默认1024 |
height | int | 否 | 高度分辨率,默认768 |
fps | int | 否 | 帧率,默认24 |
bitrate | int | 否 | 码率,默认 width × height × fps × 9 /100 |
uploadLog | bool | 否 | 设置是否上传日志 |
callback(object)
参数 | 类型 | 说明 |
---|---|---|
object.code | int | 回调码,参考 云信回调状态码,这里添加了小部分状态码 |
object.data | object/string | 回调内容 |
示例
this.$refs.videoTest.initCustom({
zoom:true,
width:500,
height:500,
},(callback) => {
this.ret += (JSON.stringify(callback) + "\r\n")
})
停止预览
stopPreview()
示例
this.$refs.videoTest.stopPreview()
开始推流
startStream(options)
参数说明
options
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
url | string | 否 | 推流地址,只录像时可随便写 |
save | string | 否 | 录像地址,录像时用 |
streamType | string | 否 | 推流类型,默认AV音视频,可选AUDIO只推音频,VIDEO只推视频 |
formatType | string | 否 | 推流格式,默认RTMP_AND_MP4推流并录像,RTMP只推流,MP4只录像 |
示例
this.$refs.videoTest.startStream({
url:"rtmp://you rtmp url",
save:"/sdcard/2.mp4",
//streamType:"AV",
//formatType:"RTMP_AND_MP4"
})
暂停推流
pauseVideoLiveStream()
示例
this.$refs.videoTest.pauseVideoLiveStream()
恢复推流
resumeVideoLiveStream()
示例
this.$refs.videoTest.resumeVideoLiveStream()
停止推流
stopStream()
示例
this.$refs.videoTest.stopStream()
截图
screenShot(path)
回调到初始化的函数(object)
参数 | 类型 | 说明 |
---|---|---|
code | int | 37 |
data | string | 保存的图片路径 |
示例
this.$refs.videoTest.screenShot("/sdcard/1.jpg")
设置滤镜
setFilterType(filterType)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
filterType | string | 否 | 默认none,可选 NATURE,FAIRYTALE,TENDER,WHITEN,CALM,CLEAN,PIXAR,BROOKLYN,HEALTHY |
示例
this.$refs.videoTest.setFilterType("FAIRYTALE")
滤镜强度
setFilterStrength(int)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
int | int | 否 | 设置滤镜强度 0 - 100 |
示例
this.$refs.videoTest.setFilterStrength(100)
磨皮强度
setBeautyLevel(int)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
int | int | 否 | 设置磨皮强度 0 - 100 |
示例
this.$refs.videoTest.setBeautyLevel(100)
闪光灯
setCameraFlashPara(bool)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
bool | bool | 否 | 设置闪光灯开关 |
示例
this.$refs.videoTest.setCameraFlashPara(true)
手动对焦一次
setCameraFocus()
示例
this.$refs.videoTest.setCameraFocus()
自动对焦开关
setCameraAutoFocus(bool)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
bool | bool | 否 | 设置自动对焦开关,默认已开 |
示例
this.$refs.videoTest.setCameraAutoFocus(false)
切换摄像头
switchCamera()
示例
this.$refs.videoTest.switchCamera()
切换分辨率
changeCaptureFormat(options)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
options | object | 是 | 分辨率参数 |
options
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
isScale_16x9 | bool | 否 | 界面是否16:9,默认false |
videoQuality | string | 否 | 清晰度,默认HIGH,可选MEDIUM,SUPER_HIGH,SUPER,HD1080P |
示例
this.$refs.videoTest.changeCaptureFormat({
isScale_16x9:true,
videoQuality:"MEDIUM"
})
切换自定义分辨率
changeCaptureCustom(options)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
options | object | 是 | 分辨率参数 |
options
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
width | int | 否 | 宽度分辨率,默认1024 |
height | int | 否 | 高度分辨率,默认768 |
fps | int | 否 | 帧率,默认24 |
bitrate | int | 否 | 码率,默认 width × height × fps × 9 /100 |
示例
this.$refs.videoTest.changeCaptureCustom({
width:800,
height:800
})
本地预览镜像
setPreviewMirror(bool)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
bool | bool | 否 | 设置本地预览镜像开关 |
示例
this.$refs.videoTest.setPreviewMirror(true)
推流镜像
setVideoMirror(bool)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
bool | bool | 否 | 设置推理镜像开关 |
示例
this.$refs.videoTest.setVideoMirror(true)
获取当前缩放比例
getCameraZoomValue()
回调到初始化的函数(object)
参数 | 类型 | 说明 |
---|---|---|
code | int | 300 |
data | int | 当前缩放比例 |
示例
this.$refs.videoTest.getCameraZoomValue()
获取支持最大缩放比例
getCameraMaxZoomValue()
回调到初始化的函数(object)
参数 | 类型 | 说明 |
---|---|---|
code | int | 301 |
data | int | 支持最大缩放比例 |
示例
this.$refs.videoTest.getCameraMaxZoomValue()
设置摄像头缩放
setCameraZoomPara(int)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
int | int | 否 | 设置镜头缩放,不要超出支持的比例 |
示例
this.$refs.videoTest.setCameraZoomPara(0)
获取当前镜头曝光比例
getExposureCompensation()
回调到初始化的函数(object)
参数 | 类型 | 说明 |
---|---|---|
code | int | 302 |
data | int | 当前镜头曝光比例 |
示例
this.$refs.videoTest.getExposureCompensation()
获取支持最小曝光比例
getMinExposureCompensation()
回调到初始化的函数(object)
参数 | 类型 | 说明 |
---|---|---|
code | int | 303 |
data | int | 支持最小曝光比例 |
示例
this.$refs.videoTest.getMinExposureCompensation()
获取支持最大曝光比例
getMaxExposureCompensation()
回调到初始化的函数(object)
参数 | 类型 | 说明 |
---|---|---|
code | int | 304 |
data | int | 支持最大曝光比例 |
示例
this.$refs.videoTest.getMaxExposureCompensation()
设置镜头曝光
setExposureCompensation(int)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
int | int | 否 | 设置镜头曝光,不要超出支持的比例 |
示例
this.$refs.videoTest.setExposureCompensation(0)
播放伴音
startPlayMusic(options)
参数说明
options
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
path | bool | 否 | 伴音文件路径,默认false |
loop | bool | 否 | 是否循环播放,默认false |
示例
this.$refs.videoTest.startPlayMusic({
path:"/sdcard/fvv.mp3",
loop:true
})
结束伴音
stopPlayMusic()
示例
this.$refs.videoTest.stopPlayMusic()
暂停伴音
pausePlayMusic()
示例
this.$refs.videoTest.pausePlayMusic()
恢复伴音
resumePlayMusic()
示例
this.$refs.videoTest.resumePlayMusic()
添加水印
watermark(options)
参数说明
options
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 否 | 图片路径 |
w | int | 否 | 水印图片宽度,默认0,0为自适应 |
h | int | 否 | 水印图片高度,默认0,0为自适应 |
x | int | 否 | 水印图片距离左边距离 |
y | int | 否 | 水印图片距离上边距离 |
示例
this.$refs.videoTest.watermark({
path:"/sdcard/1.png",
w:100,
x:100,
y:100,
})
移除水印
removeWatermark()
示例
this.$refs.videoTest.removeWatermark()
添加GIF水印
watermarkGif(options)
参数说明
options
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 否 | 图片路径 |
w | int | 否 | 水印图片宽度,默认0,0为自适应 |
h | int | 否 | 水印图片高度,默认0,0为自适应 |
x | int | 否 | 水印图片距离左边距离 |
y | int | 否 | 水印图片距离上边距离 |
fps | int | 否 | 一秒多少帧,默认0,0为一秒播完GIF图 |
示例
this.$refs.videoTest.watermarkGif({
path:"/sdcard/1.gif",
w:100,
x:100,
y:100,
})
移除GIF水印
removeWaterMarkGif()
示例
this.$refs.videoTest.removeWaterMarkGif()
本地是否显示水印
setWaterPreview(bool)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
bool | bool | 否 | 本地预览界面是否显示水印,默认true |
示例
this.$refs.videoTest.setWaterPreview(false)
本地是否显示GIF水印
setDynamicWaterPreview(bool)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
bool | bool | 否 | 本地预览界面是否显示GIF水印,默认true |
示例
this.$refs.videoTest.setDynamicWaterPreview(false)
检查权限
checkPublishPermission()
回调到初始化的函数(object)
参数 | 类型 | 说明 |
---|---|---|
code | int | 202 |
data | bool | true,false |
示例
this.$refs.videoTest.checkPublishPermission()