腾讯互动直播php,【模块教程】腾讯云视频互动直播(tencentTrtcLiveRoom)教程
##**腾讯云视频互动直播**
腾讯云视频互动直播模块,提供互动直播的功能,包括直播、连麦PK、主播 PK、低延时观看、弹幕聊天等在互动直播场景下的相关能力。
##**技术支持**
原生模块本身使用复杂,音视频功能强大,造成接入难度不小。
建议使用前先联系我们的客服,协助接入。
我们的客服微信: ruanyunkeji001或ruanyunkeji002
##**快速开始**
###**步骤一: 腾讯云配置**
这个步骤比较繁琐,可以联系我们上文中的客服进行指引
注册或登录[腾讯云](https://partners.cloud.tencent.c ... 2835035382f0964dc2f)账号,实名认证后,点击[实时音视频](https://console.cloud.tencent.com/trtc),
1. 点击应用管理[许可证](https://console.cloud.tencent.com/trtc/app),
- 如果还没有,可以点击"创建应用"
- 或选择对应的应用, 并复制”SDKAppId“,这个ID保存为配置的文件的sdkAppId;
2. 点击辅助工具,选择[UserSig生成&校验](https://console.cloud.tencent.com/trtc/usersigtool),选择对应的应用的ID,生成userId和userSig
###**步骤二: 开始使用模块**
1. 模块申明
模块名称为: tencentTrtcVideoCall
```js
var liveRoom = null;
liveRoom = api.require('tencentTrtcLiveRoom');
```
2. 参数配置
```js
var sdkAppId = 1400387416;
var userId = 'test001';
var userSig = 'eJwtzxxxxxx9v0BcAQx6A__';
var userName = 'userName';
var avatarUrl = '';
var roomId = 10001;
var remoteRoomId = 1;
var streamId = 'stream01';
var roomName = 'room01';
...
```
3. 模块初始化
```js
liveRoom.init({}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
```
###**步骤三: 设置监听器**
```js
liveRoom.setLiveRoomListener({}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
```
###**步骤四: 登录**
```js
liveRoom.login({
sdkAppId: sdkAppId,
userId: userId,
userSig: userSig
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
```
###**步骤五: 主播端开播**
1. 主播登录后,可以调用setSelfProfile设置自己的昵称和头像。
2. 主播在开播前可先调用startCameraPreview开启摄像头预览,也可以配置美颜相关功能进行美颜设置。
3. 主播调整美颜效果后,可以调用createRoom创建新的直播间。
4. 主播调用startPublish开始推流。
![主播端开播](
)
```js
liveRoom.setSelfProfile({
userName: userName,
avatarUrl: avatarUrl
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
```
```js
liveRoom.startCameraPreview({
isFront: isFront,
rect: {
x: 0,
y: 0,
w: api.winWidth / 2,
h: api.winHeight / 2
}
}, function(ret) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
```
```js
liveRoom.createRoom({
roomId: roomId,
roomName: roomName,
coverUrl: coverUrl
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
```
```js
liveRoom.startPublish({
streamId: streamId
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
```
###**步骤六: 观众端观看**
1. 观众端执行登录后,可以调用setSelfProfile设置自己的昵称和头像。
2. 观众端向业务后台获取最新的直播房间列表。
3. 观众端调用getRoomInfos获取房间的详细信息,该信息是在主播端调用createRoom创建直播间时设置的简单描述信息。
4. 观众选择一个直播间,调用enterRoom并传入房间号即可进入该房间。
5. 调用startPlay并传入主播的 userId 开始播放。
- 若直播间列表已包含主播端的 userId 信息,观众端可直接调用startPlay并传入主播的 userId 即可开始播放;
- 若在进房前暂未获取主播的 userId,观众端在进房后会收到主播setLiveRoomListener#onAnchorEnter的事件回调,该回调中携带主播的 userId 信息,调用startPlay即可播放。
![观众端观看](
)
```js
liveRoom.getRoomInfos({
roomIdList: roomIdList
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
```
```js
liveRoom.enterRoom({
roomId: roomId,
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
```
```js
liveRoom.startPlay({
userId: remoteUserId,
rect: {
x: 0,
y: 0,
w: api.winWidth / 4,
h: api.winHeight / 4
}
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
```
###**步骤七: 观众与主播连麦**
1. 观众端调用requestJoinAnchor向主播端发起连麦请求。
2. 主播端会收到setLiveRoomListener#onRequestJoinAnchor(即有观众请求与您连麦)的事件通知。
3. 主播端可以通过调用responseJoinAnchor决定是否接受来自观众端的连麦请求。
4. 主播端会收到返回结果,该结果通知会携带来自主播端的处理结果。
5. 如果主播同意连麦请求,观众端可调用startCameraPreview开启本地摄像头,随后调用startPublish启动观众端的推流。
6. 主播端会在观众端启动通知后收到 setLiveRoomListener#onAnchorEnter (即另一路音视频流已到来)通知,该通知会携带观众端的 userId。
7. 主播端调用startPlay即可看到连麦观众的画面。
![观众与主播连麦](https://cloud.tencent.com/document/product/647/43181)
```js
liveRoom.requestJoinAnchor({
reason: reason
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
```
```js
liveRoom.responseJoinAnchor({
userId: remoteUserId,
isAgree: isAgree,
reason: reason
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
```
###**步骤八:主播与主播 PK**
1. 主播 A 调用requestRoomPK向主播 B 发起 PK 请求。
2. 主播 B 会收到setLiveRoomListener#onRequestRoomPK回调通知。
3. 主播 B 调用responseRoomPK决定是否接受主播 A 的 PK 请求。
4. 主播 B 接受主播 A 的请求,等待setLiveRoomListener#onAnchorEnter通知,调用startPlay显示主播 A。
5. 主播 A 收到responseCallback回调通知,PK 请求是否被同意。
6. 主播 A 请求被同意,等待setLiveRoomListener#onAnchorEnter通知,调用startPlay显示主播 B。
![主播与主播PK](https://cloud.tencent.com/document/product/647/43181)
```js
liveRoom.requestRoomPK({
roomId: remoteRoomId,
userId: remoteUserId
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
```
```js
liveRoom.responseRoomPK({
userId: remoteUserId,
isAgree: isAgree,
reason: reason
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
```
###**步骤九:实现文字聊天和弹幕消息**
- 通过sendRoomTextMsg可以发送普通的文本消息,所有在该房间内的主播和观众均可以收到setLiveRoomListener#onRecvRoomTextMsg回调。
即时通信 IM 后台有默认的敏感词过滤规则,被判定为敏感词的文本消息不会被云端转发。
```js
liveRoom.sendRoomTextMsg({
msg: msg
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
```
- 通过sendRoomCustomMsg可以发送自定义(信令)的消息,所有在该房间内的主播和观众均可以收到setLiveRoomListener#onRecvRoomCustomMsg回调。
自定义消息常用于传输自定义信令,例如用于点赞消息的发送和广播。、
```js
liveRoom.sendRoomCustomMsg({
cmd: cmd,
msg: msg
}, function(ret, err) {
if (ret) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
```
##**技术支持**
如果您有以下需求:
- 方案咨询;
- 接入流程协助;
- 测试DEMO功能;
- 高级功能测试;
- 问题反馈;
- 需求反馈;
联系我们,获取技术支持,微信号为:
ruanyunkeji001或ruanyunkeji002
##**示例代码**
附件为示例代码,您如果接入遇到问题,请联系我们上方的技术支持微信号。
本帖子中包含更多资源 您需要 登录 才可以下载或查看,没有帐号?立即注册
x
腾讯互动直播php,【模块教程】腾讯云视频互动直播(tencentTrtcLiveRoom)教程相关推荐
- C#阿里云视频中心——直播
C#阿里云视频直播生成地址播流推流 阿里云视频中心 阿里云官方支持文档 (一)地址生成 (二)Obs导播台推流 (三)使用阿里云Aliplayer播流 阿里云视频中心 最近用阿里云视频中心做了一个小小 ...
- 视频号直播间人气太低怎么办,视频号直播间留不住人:国仁楠哥
视频号正式开通直播功能之后,很多人想要搭上视频号直播的红利班车中. 视频号更新的重点都放在直播上面,可以说正在逐步完善功能建设,为直播带货做准备.不过,做好直播带货的前提是直播间人气够高,毕竟人多,下 ...
- 斐讯N1盒子安装lnmp搭建可道云kodexplorer私有网盘教程
本教程采用lnmp方案安装web环境搭建可道云kodexplorer私有网盘,操作简单,容易上手 基础知识:第一炮 为小钢炮装上entware运行库 简单说明:data为我挂载的磁盘 话不多说直接进入 ...
- python3基础教程廖雪峰云-学习廖雪峰Python3教程的pytho
我们把变量从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flattening等等,都是一个意 ...
- php视频上传教程,php上传视频的代码_PHP教程
网页教学网(webjx.com)文件上传实例 upfile.php. function getname($exname){ $dir = "./uploadfile/"; $i=1 ...
- 云服务器架设网站教程_阿里云服务器购买流程详细教程及注意事项
阿里云服务器如何购买?目前,无论个人站长还是企业,都将阿里云作为了上云首选,那么作为新手用户应该如何选择阿里云服务器呢?阿里云服务器配置选择,和网站或应用的类型.访问量.数据量大小.程序质量等因素息息 ...
- 新媒体人必备!视频号直播避坑指南
其中,禁言.警告都算是小惩,而封停直播一次流量就清零,被封10年.20年的视频号基本"宣判死刑". 春节即将到来(榜哥榜妹明天开始也要放假啦),在这个重要的营销节点,微信的监管力度 ...
- 双11购物节国外剁手党同狂欢 阿里云视频云电商直播实时字幕
2020的双11狂潮已然提早,年度氪金剁手大会已吹响号角. 比起往年,今年格外不同,天猫双11早在10月21日便揭起预售大幕,8亿人蹲守淘宝直播,仅当日的李佳琦直播间,观看人次就突破了1.5亿,直至1 ...
- 宝塔面板怎么实名认证_云服务器安装宝塔面板完整教程
下面稍微介绍一下如何使用阿里云服务器安装宝塔面板. 概述 如果还有不了解宝塔面板怎么使用的小伙伴,可以看下前文:宝塔面板教程(1)基于云服务器搭建宝塔面板教程最全详解 宝塔面板教程(2)宝塔面板添加W ...
最新文章
- 零基础入门jQuery视频教程
- sizeof(函数名)=?
- Java并发编程之CountDownLatch(闭锁)使用详解
- [LeetCode] 86. Partition List Java
- ORACLE expdp/impdp详解
- c语言编程软件有个a开头的,厦门理工软件c语言程序设计A卷及答案
- 大数据相关知识点收集
- 从零开始实现数据结构(二) 有序数组
- 推荐下载:Windows 7 Ultimate (x86/x64) MSDN简体中文旗舰版
- python tkinter 定时_如何使用tkinter创建计时器?
- 疯狂的程序员 21-30
- 在哪下载公司考勤刷卡特殊情况说明Excel模板
- 条形码生成软件如何设置条形码数据的字号大小
- kanban 看板视图
- ClientJS是什么?
- 众筹一个报名签到平台的设计思路(一)——业务需求篇
- centos——开机显示 give root password for maintenance
- c#通过输入年月日输出该月的天数
- Effective-Java 谨慎使用流并行
- 毕业设计 基于单片机的双足机器人
热门文章
- OBJECT ARX 插入块
- micropython驱动lcd触摸屏_在 ESP32-S2 上试用 circuitpython
- 最新Java面试八股文,1000+面试题答案详解全面看完拿下大厂offer
- 牛人写的设计游戏服务器
- 动物保健品包装设计-默克达美兽药产品包装设计-兴动设计作品
- 依然·永远 第二篇章
- RTC闹钟和ELAPSED_REALTIME最大的差别
- html倒计时还有多少天,js倒计时代码还剩多少天
- DLL注入:远程线程注入
- “应用程序无法正常启动0xc0150002” 问题分析步骤及解决方案