更新记录
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 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在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原生插件配置”->”云端插件“列表中删除该插件重新选择
函数名称前往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和安卓真机运行