##**腾讯云视频互动直播**

腾讯云视频互动直播模块,提供互动直播的功能,包括直播、连麦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)教程相关推荐

  1. C#阿里云视频中心——直播

    C#阿里云视频直播生成地址播流推流 阿里云视频中心 阿里云官方支持文档 (一)地址生成 (二)Obs导播台推流 (三)使用阿里云Aliplayer播流 阿里云视频中心 最近用阿里云视频中心做了一个小小 ...

  2. 视频号直播间人气太低怎么办,视频号直播间留不住人:国仁楠哥

    视频号正式开通直播功能之后,很多人想要搭上视频号直播的红利班车中. 视频号更新的重点都放在直播上面,可以说正在逐步完善功能建设,为直播带货做准备.不过,做好直播带货的前提是直播间人气够高,毕竟人多,下 ...

  3. 斐讯N1盒子安装lnmp搭建可道云kodexplorer私有网盘教程

    本教程采用lnmp方案安装web环境搭建可道云kodexplorer私有网盘,操作简单,容易上手 基础知识:第一炮 为小钢炮装上entware运行库 简单说明:data为我挂载的磁盘 话不多说直接进入 ...

  4. python3基础教程廖雪峰云-学习廖雪峰Python3教程的pytho

    我们把变量从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flattening等等,都是一个意 ...

  5. php视频上传教程,php上传视频的代码_PHP教程

    网页教学网(webjx.com)文件上传实例 upfile.php. function getname($exname){ $dir = "./uploadfile/"; $i=1 ...

  6. 云服务器架设网站教程_阿里云服务器购买流程详细教程及注意事项

    阿里云服务器如何购买?目前,无论个人站长还是企业,都将阿里云作为了上云首选,那么作为新手用户应该如何选择阿里云服务器呢?阿里云服务器配置选择,和网站或应用的类型.访问量.数据量大小.程序质量等因素息息 ...

  7. 新媒体人必备!视频号直播避坑指南

    其中,禁言.警告都算是小惩,而封停直播一次流量就清零,被封10年.20年的视频号基本"宣判死刑". 春节即将到来(榜哥榜妹明天开始也要放假啦),在这个重要的营销节点,微信的监管力度 ...

  8. 双11购物节国外剁手党同狂欢 阿里云视频云电商直播实时字幕

    2020的双11狂潮已然提早,年度氪金剁手大会已吹响号角. 比起往年,今年格外不同,天猫双11早在10月21日便揭起预售大幕,8亿人蹲守淘宝直播,仅当日的李佳琦直播间,观看人次就突破了1.5亿,直至1 ...

  9. 宝塔面板怎么实名认证_云服务器安装宝塔面板完整教程

    下面稍微介绍一下如何使用阿里云服务器安装宝塔面板. 概述 如果还有不了解宝塔面板怎么使用的小伙伴,可以看下前文:宝塔面板教程(1)基于云服务器搭建宝塔面板教程最全详解 宝塔面板教程(2)宝塔面板添加W ...

最新文章

  1. 零基础入门jQuery视频教程
  2. sizeof(函数名)=?
  3. Java并发编程之CountDownLatch(闭锁)使用详解
  4. [LeetCode] 86. Partition List Java
  5. ORACLE expdp/impdp详解
  6. c语言编程软件有个a开头的,厦门理工软件c语言程序设计A卷及答案
  7. 大数据相关知识点收集
  8. 从零开始实现数据结构(二) 有序数组
  9. 推荐下载:Windows 7 Ultimate (x86/x64) MSDN简体中文旗舰版
  10. python tkinter 定时_如何使用tkinter创建计时器?
  11. 疯狂的程序员 21-30
  12. 在哪下载公司考勤刷卡特殊情况说明Excel模板
  13. 条形码生成软件如何设置条形码数据的字号大小
  14. kanban 看板视图
  15. ClientJS是什么?
  16. 众筹一个报名签到平台的设计思路(一)——业务需求篇
  17. centos——开机显示 give root password for maintenance
  18. c#通过输入年月日输出该月的天数
  19. Effective-Java 谨慎使用流并行
  20. 毕业设计 基于单片机的双足机器人

热门文章

  1. OBJECT ARX 插入块
  2. micropython驱动lcd触摸屏_在 ESP32-S2 上试用 circuitpython
  3. 最新Java面试八股文,1000+面试题答案详解全面看完拿下大厂offer
  4. 牛人写的设计游戏服务器
  5. 动物保健品包装设计-默克达美兽药产品包装设计-兴动设计作品
  6. 依然·永远 第二篇章
  7. RTC闹钟和ELAPSED_REALTIME最大的差别
  8. html倒计时还有多少天,js倒计时代码还剩多少天
  9. DLL注入:远程线程注入
  10. “应用程序无法正常启动0xc0150002” 问题分析步骤及解决方案