更新记录

1.0.1(2020-08-11)

修改hbuilder中显示的插件名称,其他无改动

1.0.0(2020-06-16)

发布


平台兼容性

Android Android CPU类型 iOS
armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 ×

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
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)

//IM
sendRoomMessage(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)

隐私、权限声明

1. 本插件需要申请的系统权限列表:

允许程序打开网络套接字,允许程序使用设备的camera,允许程序写音频数据,允许程序向外部存储设备写数据,允许程序使用蓝牙,允许程序获得设备信息。详细可参考https://doc-zh.zego.im/zh/1695.html#3_2 中的权限声明

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

本插件自身不会采集任何数据,但插件使用的即构旧SDK可能会采集SDK日志数据,详情可参考:https://doc-zh.zego.im/zh/1715.html#2_2

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

请参考开源项目地址的开源协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问