更新记录
1.0.1(2020-08-11)
修改hbuilder中显示的插件名称,其他无改动
1.0.0(2020-06-16)
发布
平台兼容性
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原生插件配置”->”云端插件“列表中删除该插件重新选择
说明
基于即构 旧版sdk 开发的SDK
大部分功能可参考 即构旧版SDk文档
可实现直播推拉流,多人通话,视频通话,语音通话,聊天室等功能
使用方法
先在 即构平台注册 账号,然后登入控制台创建项目,获得appId和appSign
组件引用
<!-- 必须设置name,API根据name来管理显示内容 -->
<Fvv-UniZGVideo name="videoTest" style="width:200px;height:200px"></Fvv-UniZGVideo>
原生组件只能在 nvue 页面或者 nvue子窗体 中使用
API引用
const fvvZGVideo = uni.requireNativePlugin('Fvv-UniZGVideo')
API
//初始化sdk
init(options,callback)
unInit()
//用户管理
setUser(options)
loginRoom(options)
logoutRoom()
inviteJoinLive(userId)
//预览界面
setViewConfig(options)
startPreview(options)
stopPreview()
//推流拉流
startPublishing(options)
stopPublishing()
startPlayingStream(options)
updatePlayView(options)
stopPlayingStream(options)
//截图录像
startRecord(options)
stopRecord()
clipVideo(options)
takePicture(options)
//美颜滤镜水印
enableBeautify()
disableBeautify()
setWhitenFactor(float)
setPolishStep(float)
setPolishFactor(float)
setSharpenFactor(float)
setFilter(string)
setWaterMark(options)
//音量相关
enableMic(options)
enableAux(bool)
setAuxVolume(int)
enableNoiseSuppress(bool)
setNoiseSuppressMode(mode)
enableAEC(bool)
setAECMode(mode)
setVoiceChangerParam(mode)
//镜头相关
setFrontCam(options)
setAppOrientation(options)
enableCamera(options)
setVideoMirrorMode(options)
getCamMaxZoomFactor(String)
setCamZoomFactor(options)
enableTorch(options)
//其他杂项
requireHardwareEncoder(bool)
requireHardwareDecoder(bool)
初始化sdk
init(options,callback)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
options | object | 是 | 初始化参数 |
callback | function | 否 | 消息回调 |
options
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
appId | bool | 是 | 即构项目的appId |
appSign | bool | 是 | 即构项目的appSign |
testEnv | bool | 否 | 是否测试环境,默认true,当 App 集成完成后,再向 ZEGO 申请正式环境 |
callback(object) 大部分操作都会在这回调,具体回调信息请自行测试
参数 | 类型 | 说明 |
---|---|---|
object.type | string | 回调码 |
object.data | object/string | 回调内容 |
示例
fvvZGVideo.init({
appId:"you app id",
appSign:"you app sign 例如:(byte)0x01,(byte)0x02,(byte)0x03,(byte)0x04",
},callback => {
this.ret += JSON.stringify(callback) + "\r\n"
})
释放sdk
unInit()
示例
fvvZGVideo.unInit()
设置用户信息
setUser(options)
参数说明
options
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
userId | string | 是 | 用户id,按照 即构要求的规范 填写即可 |
userName | string | 是 | 用户名,按照 即构要求的规范 填写即可 |
示例
fvvZGVideo.setUser({
userId:"fvv1",
userName:"fvv1",
})
进入房间
loginRoom(options)
参数说明
options
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
roomId | string | 是 | 房间id,按照 即构要求的规范 填写即可 |
role | string | 否 | 用户身份,Anchor主播,Audience观众,默认Anchor |
示例
fvvZGVideo.loginRoom({
roomId:"fvvRoom",
})
退出房间
logoutRoom()
示例
fvvZGVideo.logoutRoom()
邀请观众连麦
inviteJoinLive(userId)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
userId | string | 是 | 用户id |
示例
fvvZGVideo.inviteJoinLive("fvv2")
设置预览窗口尺寸
setViewConfig(options)
参数说明
options
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
level | string | 否 | 清晰度,VeryLow,Low,Generic,High,VeryHigh,SuperHigh,默认Generic |
width | int | 否 | 分辨率水平像素,默认576 |
height | int | 否 | 分辨率垂直像素,默认1024 |
fps | int | 否 | 预览帧率,默认30 |
bitrate | int | 否 | 预览码流,默认 width X height X 5 |
示例
fvvZGVideo.setViewConfig({
level:"High",
fps:24
})
开始预览
startPreview(options)
参数说明
options
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
view | string | 是 | 预览窗口组件的 name |
mode | string | 否 | 画面填充模式,ScaleAspectFill等比裁剪填充,ScaleAspectFit等比缩放,ScaleToFill拉伸,默认ScaleToFill |
zoom | bool | 否 | 预览窗口是否支持手势缩放,默认true |
channelIndex | string | 否 | 通道,main,aux,默认main |
示例
fvvZGVideo.startPreview({
view:"videoTest"
})
停止预览
stopPreview()
示例
fvvZGVideo.stopPreview()
开始推流
startPublishing(options)
参数说明
options
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
streamId | string | 是 | 流id,按照 即构要求的规范 填写即可 |
title | string | 否 | 流标题 |
flag | string | 否 | 流标记,JoinPublish连麦,MixStream混流,SingleAnchor单主播,默认JoinPublish |
extraInfo | string | 否 | 附加信息 |
channelIndex | string | 否 | 通道,main,aux,默认main |
示例
fvvZGVideo.startPreview({
streamId:"fvvStream",
title:"推流测试"
})
停止推流
stopPublishing()
示例
fvvZGVideo.stopPublishing()
开始拉流
startPlayingStream(options)
参数说明
options
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
streamId | string | 是 | 流id |
view | string | 是 | 预览窗口组件的 name |
mode | string | 否 | 画面填充模式,ScaleAspectFill等比裁剪填充,ScaleAspectFit等比缩放,ScaleToFill拉伸,默认ScaleToFill |
示例
fvvZGVideo.startPlayingStream({
streamId:"fvvStream",
view:"videoTest1"
})
更新拉流视图
updatePlayView(options)
参数说明
options
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
streamId | string | 是 | 流id |
view | string | 是 | 预览窗口组件的 name |
mode | string | 否 | 画面填充模式,ScaleAspectFill等比裁剪填充,ScaleAspectFit等比缩放,ScaleToFill拉伸,默认ScaleToFill |
示例
fvvZGVideo.updatePlayView({
streamId:"fvvStream2",
view:"videoTest1"
})
停止拉流
stopPlayingStream()
示例
fvvZGVideo.stopPlayingStream()
开始录制
startRecord(options)
参数说明
options
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
startRecord | string | 是 | 存放录像的路径 |
recordType | string | 是 | 录制类型,none不录制任何数据,audio只录音频,video只录视频,both音视频,默认both |
recordFormat | string | 否 | 录制格式,flv,mp4,默认mp4 |
channelIndex | string | 否 | 通道,main,aux,默认main |
示例
fvvZGVideo.startRecord({
storagePath:"/sdcard/test.mp4",
})
停止录制
stopRecord()
示例
fvvZGVideo.stopRecord()
裁剪视频
clipVideo(options)
参数说明
options
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
input | string | 是 | 裁剪的视频路径 |
output | string | 是 | 导出新的视频路径 |
point | int | 否 | 开始裁剪的位置,即第几秒开始剪 |
duration | int | 否 | 裁剪的时长,即剪多少秒 |
示例
fvvZGVideo.clipVideo({
"input": "/sdcard/test.mp4",
"output": "/sdcard/test_out.mp4",
"point": 0,
"duration": 9
})
截图
takePicture(options)
参数说明
options
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
startRecord | string | 是 | 存放截图的路径 |
channelIndex | string | 否 | 通道,main,aux,默认main |
示例
fvvZGVideo.takePicture({
storagePath:"/sdcard/test.jpg",
})
发送房间消息
sendRoomMessage(options)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 否 | 消息类型,text文字,file文件,picture图片,othertype其他类型,默认text |
category | string | 否 | 消息分类,chat聊天,system系统,like点赞,gift礼物,othercategory其他分类,默认chat |
content | string | 否 | 消息内容 |
示例
fvvZGVideo.sendRoomMessage({
content:"hello fvv",
})
开启美颜
enableBeautify()
示例
fvvZGVideo.enableBeautify()
关闭美颜
disableBeautify()
示例
fvvZGVideo.disableBeautify()
美白的亮度修正
setWhitenFactor(value)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
value | float | 是 | 取值范围[0,1],默认值是 0.5,参数值越大亮度越暗即参数值越小越白。 |
示例
fvvZGVideo.setWhitenFactor(0.5)
磨皮的采样步长
setPolishStep(value)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
value | float | 是 | 取值范围[1,16],默认值是 4.0;参数值越大,磨皮力度越大,皮肤肉眼效果更好 |
示例
fvvZGVideo.setPolishStep(4.5)
锐化参数
setPolishFactor(value)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
value | float | 是 | 取值范围[0,2],默认值是 0.2;参数值越大锐化越强,图片越清晰 |
示例
fvvZGVideo.setPolishFactor(0.8)
美颜采样颜色阈值
setSharpenFactor(value)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
value | float | 是 | 取值范围[0,16],默认值是 4.0;参数值越小,画面稍微有点儿朦胧 |
示例
fvvZGVideo.setSharpenFactor(5)
设置滤镜
setFilter(value)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
value | string | 是 | 滤镜参考,直接复制变量名以字符串输入即可,如下示例 |
示例
fvvZGVideo.setFilter("Lomo")
设置水印
setWaterMark(options)
参数说明
options
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 是 | 图片路径 |
w | int | 否 | 水印图片宽度,默认0,0为自适应 |
h | int | 否 | 水印图片高度,默认0,0为自适应 |
x | int | 否 | 水印图片距离左边距离 |
y | int | 否 | 水印图片距离上边距离 |
channelIndex | string | 否 | 通道,main,aux,默认main |
示例
fvvZGVideo.setWaterMark({
path:"/sdcard/1.png",
w:100,
x:100,
y:100,
})
麦克风开关
enableMic(options)
参数说明
options
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
enable | string | 是 | 开关 |
channelIndex | string | 否 | 通道,main,aux,默认main |
示例
fvvZGVideo.enableMic(false)
混音开关
enableAux()
示例
fvvZGVideo.enableAux()
混音音量
setAuxVolume(int)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
int | int | 是 | 音量,1-100,默认50 |
示例
fvvZGVideo.setAuxVolume(70)
音量降噪开关
enableNoiseSuppress(bool)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
bool | bool | 是 | 降噪开关 |
示例
fvvZGVideo.enableNoiseSuppress(true)
音量降噪模式
setNoiseSuppressMode(string)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
string | string | 是 | 降噪模式,low,medium,high ,默认medium |
示例
fvvZGVideo.setNoiseSuppressMode("high")
回声消除开关
enableAEC(bool)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
bool | bool | 是 | 回声消除开关 |
示例
fvvZGVideo.enableAEC(true)
回声消除模式
setAECMode(string)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
string | string | 是 | 降噪模式,aggressive,medium,soft ,默认aggressive |
示例
fvvZGVideo.setAECMode("medium")
变声
setVoiceChangerParam(string)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
string | string | 是 | 变声参考 直接复制变量名以字符串输入即可,如下示例 |
示例
fvvZGVideo.setVoiceChangerParam("MEN_TO_CHILD")
切换摄像头
setFrontCam(options)
参数说明
options
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
enable | bool | 是 | true前置,false后置 |
channelIndex | string | 否 | 通道,main,aux,默认main |
示例
fvvZGVideo.setFrontCam({
enable:true,
})
设置app朝向
setAppOrientation(options)
参数说明
options
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
orientation | int | 是 | app朝向,0,90,180,270,默认0 |
channelIndex | string | 否 | 通道,main,aux,默认main |
示例
fvvZGVideo.setAppOrientation({
orientation:90,
})
摄像头开关
enableCamera(options)
参数说明
options
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
enable | bool | 是 | true开,false关 |
channelIndex | string | 否 | 通道,main,aux,默认main |
示例
fvvZGVideo.enableCamera({
enable:true,
})
设置镜像
setVideoMirrorMode(options)
参数说明
options
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
mode | string | 是 | PREVIEW只预览镜像,PUBLISH只推流镜像,BOTH全都镜像,NONE全都不镜像 |
channelIndex | string | 否 | 通道,main,aux,默认main |
示例
fvvZGVideo.setVideoMirrorMode({
mode:"NONE",
})
获取镜头最大变焦倍数
getCamMaxZoomFactor(channelIndex)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
channelIndex | string | 否 | 通道,main,aux,默认main |
返回值 float:摄像头支持的最大变焦倍数
示例
let maxZoom = fvvZGVideo.getCamMaxZoomFactor()
设置摄像头变焦
setCamZoomFactor(options)
参数说明
options
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
zoom | float | 否 | 不要设置超过最大支持的倍数 |
channelIndex | string | 否 | 通道,main,aux,默认main |
示例
fvvZGVideo.setCamZoomFactor({
zoom:10,
})
闪光灯开关
enableTorch(options)
参数说明
options
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
enable | bool | 否 | 闪光灯开关 |
channelIndex | string | 否 | 通道,main,aux,默认main |
示例
fvvZGVideo.enableTorch({
enable:true,
})
硬件编码开关
requireHardwareEncoder(bool)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
bool | bool | 是 | 硬件编码开关 |
示例
fvvZGVideo.requireHardwareEncoder(true)
硬件解码开关
requireHardwareDecoder(bool)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
bool | bool | 是 | 硬件解码开关 |
示例
fvvZGVideo.requireHardwareDecoder(true)