apicloud apicloud

注册
查看: 390|回复: 1

[案例源码] 【模块教程】腾讯云视频通话(tencentTrtcVideoCall)教程

新手上路

UID:315713

主题:
29
帖子:
49
云币:
77

[案例源码] 【模块教程】腾讯云视频通话(tencentTrtcVideoCall)教程

390 1 | 发表于 2021-1-22 15:18:26 |阅读模式 | |
##**腾讯云视频通话**

该模块可以腾讯云视频通话, 提供类似微信的视频通话功能,适用多人、双人视频模式、网络会议、在线医疗、视频客服、金融双录等场景。

##**技术支持**

原生模块本身使用复杂,音视频功能强大,造成接入难度不小。
建议使用前先联系我们的客服,协助接入。

我们的客服微信: 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 videoCall = null;
videoCall = api.require('tencentTrtcVideoCall');
```

2. 参数配置

```js
var sdkAppId = 140xxxx16;
var userId = 'test001';
var userSig = 'eJwtzM0xxxb4-XfIxZA__';
var userIdList = ['test002'];
var groupId = 'group001';
var remoteUserId = 'test002';
var isFront = true;
var isMute = true;
var isHandsFree = true;
```

3. 模块初始化

```js
videoCall.init({}, function(ret, err) {
        if (ret) {
                alert(JSON.stringify(ret));
        } else {
                alert(JSON.stringify(err));
        }
});
```

###**步骤三: 设置监听**

```js
videoCall.setVideoCallListener({}, function(ret, err) {
        if (ret) {
                if (ret.hasOwnProperty('eventType') && ret.eventType == 'onUserVoiceVolume') {
                } else {
                        alert(JSON.stringify(ret));
                }
        } else {
                alert(JSON.stringify(er));
        }
});
```

###**步骤四: 登录**

```js
videoCall.login({
        sdkAppId: sdkAppId,
        userId: userId,
        userSig: userSig
}, function(ret, err) {
        if (ret) {
                alert(JSON.stringify(ret));
        } else {
                alert(JSON.stringify(err));
        }
});
```

###**步骤五: 实现1V1通话**

1. 发起方: 调用call({params}, ret)发起视频通话的请求。
2. 接收方: 当接收方处于已登录状态时,监听器会收到setTrtcCalllingListener#onInvited"事件回调。
3. 接收方: 如果希望接听通话,接收方可以调用accept()函数,可以同时调用openCamera()函数打开自己的本地摄像头。接收方也可以使用reject()拒绝此次视频通话。
4. 当双方音视频通道建立完成,通话双方还会收到setTrtcCalllingListener#onUserVideoAvailable的事件回调。此时双方用户可以调用startRemoteView()展示远端的视频画面。视频通话远端的声音默认是自动播放的。

```js
videoCall.call({
        userId: remoteUserId
}, function(ret, err) {
        if (ret) {
                alert(JSON.stringify(ret));
        } else {
                alert(JSON.stringify(err));
        }
});
```

```js
videoCall.accept({}, function(ret, err) {
        if (ret) {
                alert(JSON.stringify(ret));
        } else {
                alert(JSON.stringify(err));
        }
});
```

```js
videoCall.openCamera({
        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
videoCall.startRemoteView({
        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. 发起方:多人视频/语音通话需要调用 groupCall() 函数,并传入用户列表(userIdList)、群组 IM ID(groupId),其中 userIdList 为必填参数,groupId 为选填参数。
2. 接收端:通过setTrtcCalllingListener#onInvited事件回调能够接收到此呼叫请求,其中参数列表就是发起方填入的参数列表,callType 参数为通话类型,您可以通过此参数启动相应的界面。
3. 接收端:收到回调后可以调用 accept() 方法接听此次通话,也可以选择用 reject() 方法拒绝通话。
4. 如果超过一定时间(默认30s)没有回复,接收方监听器会收到setTrtcCalllingListener#onCallingTimeOut的事件回调,发起方监听器会收到setTrtcCalllingListener#onNoResp回调。通话发起方在多个接收均未应答时 hangup() ,每个接收方监听器均会收到setTrtcCalllingListener#onCallingCancel回调。
5. 如果需要离开当前多人通话可以调用 hangup() 方法。
6. 如果通话中有用户中途加入或离开,那么其他用户监听器均会接收到setTrtcCalllingListener#onUserEnter或setTrtcCalllingListener#onUserLeave回调。

```js
videoCall.groupCall({
        userIdList: userIdList,
        groupId: groupId
}, function(ret, err) {
        if (ret) {
                alert(JSON.stringify(ret));
        } else {
                alert(JSON.stringify(err));
        }
});
```

```js
videoCall.hangup({}, function(ret, err) {
        if (ret) {
                alert(JSON.stringify(ret));
        } else {
                alert(JSON.stringify(err));
        }
});
```

##**技术支持**

如果您有以下需求:

- 方案咨询;
- 接入流程协助;
- 测试DEMO功能;
- 高级功能测试;
- 问题反馈;
- 需求反馈;

联系我们,获取技术支持,微信号为:
ruanyunkeji001或ruanyunkeji002

##**示例代码**

附件为示例代码,您如果接入遇到问题,请联系我们上方的技术支持微信号。

本帖子中包含更多资源    您需要 登录 才可以下载或查看,没有帐号?立即注册

主题:
354
帖子:
49530
云币:
21407
发表于 2021-2-2 22:00:19 |
您需要登录后才可以回帖 登录 | 立即注册

快速回复 返回顶部 返回列表