更新记录

1.5.8(2024-04-07)

云直播拉流优化

1.5.7(2023-07-17)

提升云直播拉流稳定性

1.5.6(2023-05-04)

修复ios打包报错问题

查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 14.0 armeabi-v7a:支持,arm64-v8a:支持,x86:支持 适用版本区间:9 - 17

原生插件通用使用流程:

  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原生插件配置”->”云端插件“列表中删除该插件重新选择


函数名称前往https://cloud.tencent.com/product/lvb申请账号

推流组件:tx-push

函数名 参数 说明
setLicence {"licenceURL":"腾讯的url地址","key":"key的值"}
setVideoQuality {"quality":整型,"adjustBitrate":bool值,"adjustResolution":bool值} 见下文补充
switchCamera 无
stopPush 无 停止推流
setCohostConfig {
appId:腾讯云的appid,
retryCount:重试的次数,
key:腾讯云的API授权key,
urls:合流的地址,以逗号分隔,
model:模式,
pushUrl:主播的推流地址
subWidth:合流的宽度(最大540,参数性质可选)
. subHeight:合流的高度(最大960,参数性质可选)
. offsetHeight:合流的纵向间隙(参数性质可选)
,回调函数 }
合流设置
cancelCohostConfig {
appId:腾讯云的appid,
retryCount:重试的次数,
key:腾讯云的API授权key,
pushUrl:主播的推流地址
,回调函数}
startPlayMusic {path:播放网络地址(字符串), loopCount:循环次数(整数), ID:音乐id(字符串)} 开始播放背景音乐
stopPlayMusic {ID:音乐id(字符串)} 停止播放背景音乐
pausePlayMusic {ID:音乐id(字符串)} 暂停播放背景音乐
resumePlayMusic {ID:音乐id(字符串)} 恢复播放背景音乐
setMusicPublishVolume {ID:音乐id(字符串)volume:声音大小(整数)} 设置背景音乐的远端音量大小
setMusicPlayoutVolume {ID:音乐id(字符串),volume:声音大小(整数)} 设置背景音乐的本地音量大小
setMirror true or false 设置视频镜像效果
setRenderRotation 整数 取值为0 ,90,180,270(其他值无效),表示主播端摄像头预览视频的顺时针旋转角度
toggleTorch 参数一 :true or false 参数二:回调函数 打开后置摄像头旁边的闪关灯
setZoom 参数一 :整数 (取值范围1 - 5,默认值建议设置为1即可) 参数二:回调函数 调整摄像头的焦距
setFocusPosition 参数一:x坐标(整数)参数二:y坐标(整数) 置手动对焦区域
setVoiceVolume 参数一 :整数 (volume 音量大小,100为原始音量,范围是:[0 ~ 150],默认值为100) 参数二:回调函数 设置麦克风采集人声的音量
setMusicPitch 参数一:整数(音乐id) 参数二:float(音调,默认值是0.0f,范围是:[-1 ~ 1] 之间的浮点数) 参数三:回调函数 调整背景音乐的音调高低
setVoiceReverbType 参数一:整数(参考腾讯文档取值)参数二:回调函数 设置人声的混响效果(KTV、小房间、大会堂、低沉、洪亮...)
setVoiceChangerType 参数一:整数(参考腾讯文档取值)参数二:回调函数 设置人声的变声特效
setVideoRecordListener 回调函数 设置监听
startRecord 参数一:字符串(存在的文件路径) 参数二:回调函数 视频开始录制
stopRecord 回调函数 结束录制
setMute true or false 开启静音

appid见如下图示

key见如下图示

quality取值说明

值 说明
1 标清:采用 360 × 640 的分辨率
2 高清:采用 540 × 960 的分辨率
3 超清:采用 720 × 1280 的分辨率
4 连麦场景下的大主播使用
5 连麦场景下的小主播(连麦的观众)使用
6 纯视频通话场景使用(已废弃)

推流组件:tx-pushview

函数名称 参数 说明
startPushUrl 回调函数 开始推流,回调值 0: 启动成功;-1: 启动失败;-5:license 校验失败
stopPush 无 停止推流
pausePush 无 暂停摄像头采集
resumePush 无 恢复摄像头采集
startPreview 无 启动摄像头预览
stopPreview 无 停止摄像头预览
isPublishing 无 查询是否正在推流
snapshot 回调函数 截取推流中的图片
toggleTorch 无 打开后置摄像头旁边的闪关灯
startPusher 参数1:推流地址,参数2:回调函数

拉流组件: tx-avplayer

函数名称 参数 说明
startPlay 无 开始播放
stopPlay 无 停止播放
pause 无 暂停播放
setCacheStrategy 整型 设置播放的速度 0 快速 1 平滑 2 自动
setConfig 见腾讯各个字段支持:enableAEC cacheTime bAutoAdjustCacheTime maxAutoAdjustCacheTime minAutoAdjustCacheTime videoBlockThreshold connectRetryCount connectRetryInterval enableMessage enableMetaData 格式如下{"enableAEC":true}
startPlayWithUrl 参数一 播放url地址(String) 参数二:播放类型type(int) type取值:0 RTMP 直播 1 FLV 直播 2 FLV 点播 3 HLS 点播 4 MP4点播 5 RTMP 直播加速播放

录屏组件: tx-screenview

函数名称 参数 说明
startScreen 参数一:{audio:1,video:1,floatview:1} , 参数二:回调函数 0不需要声音,1需要录制本地声音(audio),0不需要开启摄像头,1需要开启摄像头(video),不需要开启录屏摄像头预览,1需要开启录屏摄像头预览(floatview) 回调值 0: 启动成功;-1: 启动失败;-5:license 校验失败
stopScreen 无 停止录屏
pausePusher 无 暂停推流
resumePusher 无 继续推流

tx-pushview属性

属性名 属性值 备注
url 推流的地址
pauseFps 推流时的视频帧率,取值范围3 - 8,默认值:5 FPS
pauseTime 垫片推流的最大持续时间,单位秒,默认值:300s 调用 TXLivePusher 的 pausePush() 接口,会暂停摄像头采集并进入垫片推流状态,如果该状态一直保持,本字段用于指定垫片推流的最大持续时间,超过后即断开与云服务器的连接
touchFocus 是否允许点击曝光聚,焦默认值:NO
enableZoom 是否允许双指手势放大预览画面,默认值:NO
enableAudioPreview 是否开启耳返特效 【推荐取值】NO 开启耳返会消耗更多的 CPU,只有在主播带耳机唱歌的时候才有必要开启此功能。
frontCamera 是否前置摄像头
beatyStyle 美颜风格 光滑或者自然,0 光滑 1自然
beauty 美颜级别 取值范围0 - 9; 0表示关闭,1 - 9值越大,效果越明显
ruddiness 红润级别 取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显
whiteness 美白级别 取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显
statechange 推流中的状态回调用
filterFileName 滤镜图片 可取值有15种,见下面说明
homeOrientation 画面旋转方向 HOME_ORIENTATION_RIGHT = 0, ///< HOME 键在右边,横屏模式 HOME_ORIENTATION_DOWN = 1, ///< HOME 键在下面,手机直播中最常见的竖屏直播模式. HOME_ORIENTATION_LEFT = 2, ///< HOME 键在左边,横屏模式 HOME_ORIENTATION_UP = 3, ///< HOME 键在上边,竖屏直播(适合小米 MIX2)
renderRotation 角度值 rotation 取值为0 ,90,180,270(其他值无效),表示主播端摄像头预览视频的顺时针旋转角度。
enableAEC 是否开启回声抑制 默认NO
filterFileName可取值如下:
bailan.png
chaotuo.png
chunzhen.png
fennen.png
huaijiu.png
landiao.png
langman.png
normal.png
qingliang.png
qingxin.png
rixi.png
weimei.png
white.png
xiangfen.png
yinghong.png
yuanqi.png
yunshang.png

tx-avplayer属性说明

属性名 属性值 备注
url 播放地址
playModel 播放模式 画面裁剪模式: 0 全屏 1 图像适应屏幕,保持画面完整
playRotation 设置画面方向 Ios : 0 HOME 键在右边,横屏模式 1 HOME 键在下面,手机直播中最常见的竖屏直播模式 2 键在左边,横屏模式 3 HOME 键在上边,竖屏直播 andriod: 0 竖屏 270 横屏模式
statechange 状态回调

tx-screenview属性说明

属性名 属性值 备注
pauseImg 暂停推流的图片支持pause_publish.jpg
statechange 推流状态回调

TX-LivePusher函数

函数名称 参数 说明
initWithLiveMode liveMode 0: RTMP 1: RTC
函数名称 参数 说明
setVideoQuality 见如下参数列表{参数列表 } 设置视频质量
字段 说明
resolution 分辨率 0: 160x160 1: 270x270 2: 480x480 3: 320x240 4: 480x360 5: 640x480 6: 320x180 7: 480x270 8: 640x360 9: 960x540 10: 1280x720 11: 1920x1080
videoResolutionMode 模式 0: Landscape 1: Portrait
videoFps 视频采集帧率
videoBitrate 目标视频码率
函数名称 参数 说明
setAudioQuality 整数类型 0: 采样率16k;单声道;音频码率16kbps; 1: 采样率48k;单声道;音频码率50kbps 2: 采样率48k;双声道 + 全频带;音频码率128kbps
函数名称 参数 说明
startCamera bool类型 打开本地摄像头
函数名称 参数 说明
startMicrophone 无 打开麦克风
函数名称 参数 说明
pauseAudio 无 静音本地音频
函数名称 参数 说明
resumeAudio 无 取消静音本地音频
函数名称 参数 说明
pauseVideo 无 暂停推流器的视频流
函数名称 参数 说明
resumeVideo 无 恢复推流器的视频流
函数名称 参数 说明
startPush {url:""} 开始音视频数据推流
函数名称 参数 说明
stopPush 无 停止推流
函数名称 参数 说明
stopCamera 无 关闭本地摄像头
函数名称 参数 说明
stopMicrophone 无 停止麦克风
函数名称 参数 说明
setRenderMirror 无 0: 系统默认镜像类型 1: 前置摄像头和后置摄像头,都切换为镜像模式 2: 前置摄像头和后置摄像头,都切换为非镜像模式
函数名称 参数 说明
setObserver 回调函数 设置推流状态监听
函数名称 参数 说明
removeObserver 无 移除监听
函数名称 参数 说明
setRenderRotation 整数 0: 不旋转 1: 顺时针旋转90度 2: 顺时针旋转180度 3: 顺时针旋转270度
函数名称 参数 说明
sendSeiMessage {code:0,data:""} 发送 SEI 消息 code: 消息码 data:字符串
函数名称 参数 说明
snapshot 无 截取推流过程中的本地画面
函数名称 参数 说明
startPlayMusic {path:播放网络地址(字符串), loopCount:循环次数(整数), ID:音乐id(字符串)} 开始播放北京音乐
函数名称 参数 说明
stopPlayMusic {ID:音乐id(字符串)} 停止播放背景音乐
函数名称 参数 说明
pausePlayMusic {ID:音乐id(字符串)} 暂停播放背景音乐
函数名称 参数 说明
resumePlayMusic {ID:音乐id(字符串)} 继续播放背景音乐
函数名称 参数 说明
setMusicPublishVolume {ID:音乐id(字符串)volume:声音大小(整数)} 设置某一首背景音乐的远端音量的大小
函数名称 参数 说明
setAllMusicVolume {volume:声音大小(整数)} 设置所有背景音乐的本地音量和远端音量的大小
函数名称 参数 说明
setFilter 字符串,滤镜资源名字 设置色彩滤镜效果
函数名称 参数 说明
setBeautyStyle 整数 0: 光滑 1: 自然 2: 介于光滑和自然之间
函数名称 参数 说明
setWhitenessLevel 整数 设置美白级别 取值范围0 - 9;0表示关闭,9表示效果最明显
函数名称 参数 说明
setRuddyLevel 整数 设置红润级别 取值范围0 - 9;0表示关闭,9表示效果最明显
函数名称 参数 说明
switchCamera bool类型 切换前置或后置摄像头
函数名称 参数 说明
isFrontCamera 无 判断当前是否为前置摄像头
函数名称 参数 说明
enableCameraTorch bool类型 开启/关闭闪光灯
函数名称 参数 说明
setAudioRoute 整数 设置音频路由 0: 使用扬声器播放 1: 使用听筒播放
函数名称 参数 说明
setSystemVolumeType 整数 0: 自动切换模式 1: 全程媒体音量 2: 全程通话音量
函数名称 参数 说明
setCameraFocusPosition (x,y) x: x坐标值(整数) y: y坐标值(整数)
函数名称 参数 说明
startVirtualCamera 图片资源(字符串) 开启图片推流
函数名称 参数 说明
stopVirtualCamera 无 停止图片推流

LivePlayer常用函数

函数名称 参数 说明
initLivePlayer 无 初始化播放器
函数名称 参数 说明
setObserver 回调函数 设置播放监听
函数名称 参数 说明
removeObserver 无 移除播放监听
函数名称 参数 说明
startPlay {url:""} 开始播放音视频流
函数名称 参数 说明
setPlayoutVolume {playoutVolume:100} 设置播放器音量 取值0-100
函数名称 参数 说明
setRenderFillMode 整数 设置画面的填充模式 0: 图像铺满屏幕 1: 图像长边填满屏幕
函数名称 参数 说明
setRenderRotation 整数 0: 不旋转 1: 顺时针旋转90度 2: 顺时针旋转180度 3: 顺时针旋转270度
函数名称 参数 说明
enableVolumeEvaluation 整数 启用播放音量大小提 0为不开启,单位ms
函数名称 参数 说明
enableReceiveSeiMessage (bool类型,整数) 开启接收 SEI 消息
函数名称 参数 说明
snapshot 无 截取播放过程中的视频画面
函数名称 参数 说明
stopPlay 无 停止播放
函数名称 参数 说明
isPlaying 无 是否正在播放
函数名称 参数 说明
pauseAudio 无 暂停播放器的音频流
函数名称 参数 说明
resumeAudio 无 恢复播放器的音频流
函数名称 参数 说明
pauseVideo 无 暂停播放器的视频流
函数名称 参数 说明
resumeVideo 无 恢复播放器的视频流
函数名称 参数 说明
setCacheParams {minTime:1,maxTime:5} 设置播放器缓存自动调整的最小和最大时间 ( 单位:秒 )

支持连麦,详情请看demo

常见错误

为什么推流失败?

1.请检查你的Licence中的应用包名,和你测试的工程的包名是否一致

2.检查推流地址是否过期

3.检查网络是否正常

快速集成

1.按照图示填写你的测试推流证书,Package Name是安卓应用包名,Bundle Id是ios应用包名,红色方框为你需要填写的key和licenceURL

2.下载示例工程,找到live.nvue文件,在如下地方替换为你的key和licenceURL

3.准备推流地址,按图示生成推流地址

4.找到live.nvue文件,在如下地方替换为你的推流地址

5.生成自定义基座

以安卓为例其中顶部的安卓包名要与第一步的推流证书的PackageName一致,很重要

如果不会制作安卓证书参考http://www.appuploader.net/appuploader/onlinetools.php

6.运行自定义基座:

7.点击开始推流观察返回值如果ret为0表示推流成功

8.按照图示找到生成拉流地址的地方绑定域名

9.找到文件livepull.nvue在图示地方替换play.biggold.net.cn为你的播放的绑定域名,test01为你生成推流地址的streamId,观看推流

demo初步体验:

跑通代码需要自定义基座,并且使用ios和安卓真机运行

隐私、权限声明

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

NSCameraUsageDescription, NSMicrophoneUsageDescription android.permission.RECORD_AUDIO android.permission.CAMERA

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

插件自身不采集任何数据,插件使用的腾讯云的sdk采集数据。说明参考官方https://cloud.tencent.com/product/lvb

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

无