更新记录

1.5.7(2023-07-17)

提升云直播拉流稳定性

1.5.6(2023-05-04)

修复ios打包报错问题

1.5.5(2023-03-28)

优化ios推流效果

查看更多

平台兼容性

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

原生插件通用使用流程:

  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} , 参数二:回调函数 0不需要声音,1需要录制本地声音(audio),0不需要开启摄像头,1需要开启摄像头,回调值 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 停止图片推流

TX-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,不懂加群933785472提问

常见错误

为什么推流失败?

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. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

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