uniapp直播拉流,
如何在uniapp中实现直播旁路流?以下文章将为您总结分享旁路流量推送步骤,希望对您有所帮助!
UNI-APP开发(仿饿)开发课程:进入学习
Uniapp视频通话基本是通过anyRTC音视频SDK插件实现的。
如果没有实现基本的视频通话,请参考文章(https://blog.csdn.net/anyRTC/article/details/121352746)
旁路推流步骤
1. 开通对应权限
前往 anyRTC 控制台 - 用量统计 选择对应项目开启旁路推流服务
2. 模式调整
场景调整sdk为默认通信场景,通信模式需改为直播模式。
//设置直播模式
rtcModule.setChannelProfile({
个人资料:1
},(res)={
console . log(RES);
}角色调整角色主播:可以发布和接收音频和视频流
角色-观众:您只能接收音频和视频流。
//1设置为主播2设置为观众
rtcModule.setClientRole({
“角色”:1
},(res)={
console . log(RES);
})3. 设置推流视图布局以及音频设置
在uniapp插件市场下载anyRTC音视频SDK插件实例
LiveTranscoding简介,utils/classes.js中的TranscodingUser
从“”导入{实时转码,转码用户}。/classes.jsLiveTranscoding:包的总体布局TranscodingUser:包的锚点布局
设置推送流的视图布局和音频设置。
当频道继续加主播,也想合并推送流时,再调用设置即可。
//单个锚点布局
//constant chor=新转码用户(锚点ID uid,{
//宽度:280,
//身高:210,
//x: 0,
//y: 0
//})
//多锚点布局(3列)
let anchor list=[];
lists.map((项目,索引)={
Anchorlist.push(新转码用户(anchor ID uid,{
宽度:280,
身高:210,
x:(索引% 3) * 280,
y: Math.floor(index/3) * 210,
}))
}
//设置旁路推流(3列)
rtcModule.setLiveTranscoding({
代码转换:新的实时代码转换(主播列表,{
宽度:840,
height:math . ceil(anchorlist . length/3)* 210,
})
},(ret)={
console . log(ret);
});4. 推流
当您需要推送多个流时,请遍历推送流。
RTC module . addpublishstreamurl({
Url:推送流的cdn地址,
TranscodingEnabled: true //转码是指音频和视频流在旁路流期间进行转码,然后推送到其他RTMP服务器。
},(res)={
Console.log(添加旁路推流,RES);
});通过 onRtmpStreamingStateChanged 回调来判断推流状态将回调添加到setCallBack,相关的状态代码将在下面传递:
//状态代码
状态:{
0:“推送流尚未开始或结束”,
1:连接AR推送服务器和RTMP服务器,
2:“成功推送流后,推送流正在进行中”,
3:“恢复推送流”,
4:“推送流失败”
},
//错误代码
错误代码:{
0:“推送成功”,
1:参数无效,请检查输入参数是否正确。请确保调用setLiveTranscoding ,
2:“推送流已加密,无法推送”,
3:推流超时失败,可以再次推流,
4:“推送服务器出错”,
5:“RTMP服务器中的错误”,
6:“推送请求过于频繁”,
7:‘单个主播在线推送地址数达到10’,
8:‘主播操作不属于自己的流,请检查App逻辑’,
9:“服务器找不到该流”,
10:推送地址格式有误,请检查推送地址格式是否正确,
}5. 停止推流
RTC module . remove publishstreamurl({
Url:推送流的cdn地址,
},(res)={
Console.log(取消旁路推送,RES);
});推荐:以上《uniapp教程》是如何在uniapp中实现直播分流(步骤分享)的详细内容。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。