如何使语音社交app源码实现腾讯实时音视频数据回调
在云豹语音社交app源码项目中,关于群聊派对和1V1语音连麦部分,用腾讯实时音视频来实现,当出现聊天过程中出现的断网或者闪退等异常情况,也需要PHP服务端调用腾讯云接口,通过返回的数据来进行下一步操作,下面就语音社交app源码php后台请求腾讯接口的实现方法做简单介绍。
一、 当前用户是否断网或者重连等异常情况
首先查看,当前用户是否断网或者重连等异常情况——访问腾讯云提供的接口:实时音视频中的:查询详细事件(DescribeDetailEventRequest)
1、接口描述:
接口请求域名: trtc.tencentcloudapi.com
查询用户某次通话内的进退房,视频开关等详细事件。可查询14天内数据。
默认接口请求频率限制:20次/秒。
2、请求参数如下:
参数名称 | 必选 | 类型 | 描述 |
Action | 是 | String | 公共参数,本接口取值:DescribeDetailEvent。 |
Version | 是 | String | 公共参数,本接口取值:2019-07-22。 |
Region | 是 | String | 公共参数,所属地域: 华北地区(北京):ap-beijing 华南地区(广州) ap-guangzhou |
CommId | 是 | String | 通话 ID(唯一标识一次通话) 通过 DescribeRoomInformation(查询房间列表)接口获取 |
StartTime | 是 | Integer | 查询开始时间,14天内。本地unix时间戳(1588031999s) |
EndTime | 是 | Integer | 查询结束时间,本地unix时间戳(1588031999s) |
UserId | 是 | String | 用户id |
RoomId | 是 | String | 房间号 |
3、输出数据:
A) 、数据字段说明:
Type://视频流类型:0:与视频无关的事件;2:视频为大画面;3:视频为小画面;7:视频为旁路画面;
Eventid://事件ID,这里要注意,根据这个数据结合下边的paramone、paramtwo来判断当前音视频是否正常
Time://返回事件上报的时间戳
parameOne:事件的第一个参数
parameTwo:事件的第二个参数
B)、返回数据格式如下:
{ "Response": { "Data": [ { "Content": [ { "Type": 0, "Time": 1589975272790, "EventId": 32793, "ParamOne": -1, "ParamTwo": -1 } ], "PeerId": "hyder11" } ], //唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId "RequestId": "093bffd3-9d27-45ca-8410-c61c0e4cdcb8" } }
注意:
1)、Eventid返回的事件ID更多介绍访问如下:
https://cloud.tencent.com/document/product/647/44916返回数据的错误码,详细查看腾讯云2)、公共错误码,链接如下:
https://cloud.tencent.com/document/api/647/37084#.E5.85.AC.E5.85.B1.E9.94.99.E8.AF.AF.E7.A0.81
二、部分语音社交app源码如下:
1、composer引用腾讯云sdk后,引入autoload.php文件
$path= CMF_ROOT.'sdk/tencentIm/vendor/autoload.php'; require_once($path);
2、使用如下文件
use TencentCloud\Common\Credential; use TencentCloud\Common\Profile\ClientProfile; use TencentCloud\Common\Profile\HttpProfile; use TencentCloud\Common\Exception\TencentCloudSDKException; use TencentCloud\Trtc\V20190722\TrtcClient; use TencentCloud\Trtc\V20190722\Models\DescribeRoomInformationRequest; use TencentCloud\Trtc\V20190722\Models\DescribeDetailEventRequest;
3、实现语音社交app源码:
$cred = new Credential("腾讯云秘钥id", "腾讯云秘钥key"); $httpProfile = new HttpProfile(); $httpProfile->setEndpoint("trtc.tencentcloudapi.com"); ...........省略代码 $req->fromJsonString(json_encode(请求参数)); ...........省略代码 $contentlist= $last_onlarr[0]['Content'];//返回数据中content列表 foreach($contentlist as $kc=>$vc){ $vc_arr=$this->newjson($vc); if($vc_arr['EventId']=='7001' ){//退出房间 $isclose=1; break; }else if($vc_arr['EventId']=='5008'){//退出房间成功 if($vc_arr['ParamOne']=='1' && $vc_arr['ParamTwo']=='-1'){ $isclose=1; break; } }else if($vc_arr['EventId']=='5003'){//5003表示ParamOne:0 ParamTwo:-1 进入房间失败 if($vc_arr['ParamOne']=='0' && $vc_arr['ParamTwo']=='-1'){ $isclose=1; break; } } }
其中$isclose如果为1,则说明实时音视频异常,可根据需求处理,以上便是语音社交app源码PHP端查询实时音视频使用过程出现的异常信息的操作方法。
声明:以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任www.yunbaokj.com