php对接腾讯云直播,聊天,im,云录制产生回放

首先先在腾讯云中开通这三项
在这里插入图片描述
IM中创建项目
在这里插入图片描述
云直播
解析推拉流地址:
在这里插入图片描述

	$domain = $this->getConfig('anchor_push');   //推流地址$domainpull = $this->getConfig('anchor_pull');    //拉流地址$streamName = 'kangfuyuan'.$res;    //直播间ID(唯一的)$key = $this->getConfig('anchor_push_key');    //推流key (平台上自己获取的)$keypull = $this->getConfig('anchor_pull_key');   //拉流key (平台上自己获取的)$time = date('Y-m-d H:i:s',time()+86400);   //            生成推流地址$push_url = $this->getPushUrl($domain,$streamName,$key,$time);//            生成拉流地址$pull_url = $this->getpullUrl($domainpull,$streamName,$keypull,$time);//            录制视频(云点播,手动点击录制)$Taskre = $this->CreateRecordTaskLuzhi($streamName);//           dump($Taskre);exit;//            创建直播间群组   IM创建群组$data_ = ['Type' => 'ChatRoom','Name' => $data['title'],'MaxMemberCount' => '1000','ApplyJoinOption' => 'NeedPermission'];//            创建群组$create_group = $this->common('create_group',$data_);if($create_group['ErrorCode'] !== 0){$result['code'] = 0;$result['msg'] = $create_group['ErrorInfo'];return_json_encode($result);}//            注册腾讯云账号(每个账号都需要注册腾讯云账号  建议放在注册接口中执行)controller('TencentIm')->account_import($id);//            加入群聊$add = $this->add_group_id($create_group['GroupId'],$id);//            dump($add);exit;Db::name('broadcast')->where('id',$res)->update(array('push_url'=>$push_url,'pull_url'=>$pull_url,'TaskId'=>$Taskre['TaskId'],'RequestId'=>$Taskre['RequestId'],'group_id'=>$create_group['GroupId']));//            Db::name('broadcast')->where('id',$res)->update(array('push_url'=>$push_url,'pull_url'=>$pull_url,'group_id'=>$create_group['GroupId']));$data_info = Db::name('broadcast')->where('id',$res)->find();$data_info['cover_img'] = setFilePath($data_info['cover_img']);$this->ApiReturn(1,'开播成功',$data_info);

生成推拉流地址

/*** 获取推流地址* 如果不传key和过期时间,将返回不含防盗链的url* @param domain 您用来推流的域名*        streamName 您用来区别不同推流地址的唯一流名称*        key 安全密钥*        time 过期时间 sample 2016-11-12 12:00:00* @return String url*/public function getPushUrl($domain, $streamName, $key = null, $time = null){if($key && $time){$txTime = strtoupper(base_convert(strtotime($time),10,16));$txSecret = md5($key.$streamName.$txTime);$ext_str = "?".http_build_query(array("txSecret"=> $txSecret,"txTime"=> $txTime));}return "rtmp://".$domain."/live/".$streamName . (isset($ext_str) ? $ext_str : "");}public function getPullUrl($domain, $streamName, $key = null, $time = null){if($key && $time){$txTime = strtoupper(base_convert(strtotime($time),10,16));$txSecret = md5($key.$streamName.$txTime);$ext_str = "?".http_build_query(array("txSecret"=> $txSecret,"txTime"=> $txTime));}return "http://".$domain."/live/".$streamName .".m3u8". (isset($ext_str) ? $ext_str : "");}

录制视频(云点播,手动点击录制,官方有两种录制,一种是开直播自动录制)

//录制视频
public function CreateRecordTaskLuzhi($streamName){try {$cred = new Credential("AKIDoXd******0C8zaAaPyyg8H8fwveeRXty", "1p565rYx5C3dw******6rKsBD5fGbR1e");$httpProfile = new HttpProfile();$httpProfile->setEndpoint("live.tencentcloudapi.com");$clientProfile = new ClientProfile();$clientProfile->setHttpProfile($httpProfile);$client = new LiveClient($cred, "ap-guangzhou", $clientProfile);$req = new CreateRecordTaskRequest();$params = array("StreamName" => $streamName,"DomainName" => "kfytui.zzmzrj.com","AppName" => "live","StartTime" => time(),"EndTime" => time()+20*60*60,);$req->fromJsonString(json_encode($params));$resp = $client->CreateRecordTask($req);return json_decode($resp->toJsonString(),true);}catch(TencentCloudSDKException $e) {echo $e;}}//停止录制public function StopRecordTaskTzhi($TaskId){try {$cred = new Credential("AKIDoXd******0C8zaAaPyyg8H8fwveeRXty", "1p565rYx5C3dw******6rKsBD5fGbR1e");$httpProfile = new HttpProfile();$httpProfile->setEndpoint("live.tencentcloudapi.com");$clientProfile = new ClientProfile();$clientProfile->setHttpProfile($httpProfile);$client = new LiveClient($cred, "ap-guangzhou", $clientProfile);$req = new StopRecordTaskRequest();$params = array("TaskId" => $TaskId,);$req->fromJsonString(json_encode($params));$resp = $client->StopRecordTask($req);return json_decode($resp->toJsonString(),true);
//            print_r($resp->toJsonString());}catch(TencentCloudSDKException $e) {echo $e;}}
//    腾讯云创建群组(临时聊天群)public function common($Interface,$data){
//        $Interface = 'create_group';$sdkappid = '1400504***';$identifier = 'administrator';$usersig = '************B3mW2h15-rmNBCjKIIA22R4caayS6iyThUFL17pi3Pdw7nzfbb1LhLxQJmG8CmQyYhG00XGrgQNTXUaVXom-oPOlEVbUuCBZYLgOBy3x0b*WxJyd4R0QaAUTXVP-Ms7vOZ4*D-hcr*PzfjqLRw8zie1G5xOFclX0XpGrJM*V6o0xjtZLK8Jq-cDMM5*3wBrOI0ZQ__';$random = '99999999';$url = 'https://console.tim.qq.com/v4/group_open_http_svc/'.$Interface.'?sdkappid='.$sdkappid.'&identifier='.$identifier.'&usersig='.$usersig.'&random='.$random.'&contenttype=json';$request = curl_post($url, $data);return $request;}
//    增加群成员public function add_group_id($group_id,$uid){$Interface = 'add_group_member';$sdkappid = '14005******';$identifier = 'administrator';$usersig = '******4R0QaAUTXVP-Ms7vOZ4*D-hcr*PzfjqLRw8zie1G5xOFclX0XpGrJM*V6o0xjtZLK8Jq-cDMM5*3wBrOI0ZQ__';$random = '99999999';$url = 'https://console.tim.qq.com/v4/group_open_http_svc/'.$Interface.'?sdkappid='.$sdkappid.'&identifier='.$identifier.'&usersig='.$usersig.'&random='.$random.'&contenttype=json';$data = ['GroupId' => $group_id,'MemberList' => [['Member_Account' => "{$uid}"],],];$request = curl_post($url, $data);return $request;}
//    腾讯云注册账号public function account_import($usesrid='administrator'){$Interface = 'account_import';$sdkappid = '14005******';$identifier = 'administrator';$usersig = '********V6o0xjtZLK8Jq-cDMM5*3wBrOI0ZQ__';$random = '99999999';$url = 'https://console.tim.qq.com/v4/im_open_login_svc/'.$Interface.'?sdkappid='.$sdkappid.'&identifier='.$identifier.'&usersig='.$usersig.'&random='.$random.'&contenttype=json';$nick = Db::name('users')->field('nickname,headimgurl')->where('id',$usesrid)->find();$data = ['Identifier' => "{$usesrid}",'Nick' => $nick['nickname'],'FaceUrl' => setFilePath($nick['headimgurl']),];$request = curl_post($url, $data);return $request;}
//补全文件路径
function setFilePath($file = null){if(!$file){return '';}$file = str_replace("\\","/",$file);/*************************************************/if(strstr($file,"http"))    return $file;if(strstr($file,"upload"))    return 'http://'.$_SERVER['HTTP_HOST'].$file;return "http://47.92.85.75/upload/".$file;/*************************************************/$pa = "/upload/".$file;if(file_exists(".".$pa)){$path="http://".$_SERVER['HTTP_HOST'].$pa;return $path;}else{return '';}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/30020.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

心法利器[84] | 最近面试小结

心法利器 本栏目主要和大家一起讨论近期自己学习的心得和体会,与大家一起成长。具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有。 2022年新一版的文章合集已经发布,累计已经60w字了,获取方式看这里&…

Visual Studio 2022 集成虚幻引擎功能

【CSDN 编者按】微软作为全球著名的游戏厂商,其在游戏制作与开发体验上也积极下功夫。在听取了游戏开发人员的反馈后,Visual Studio 2022 正式集成 Unreal Engine (UE、虚幻引擎) 作者 | David Li 责编 | 梦依丹 出品 | CSD…

苹果:付费才能用 iOS 开发者预览版,网友吐槽:找 Bug,还得先交 99 美元?

整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 以后要尝鲜 iOS 开发者预览版,要先付费,才能测试? 苹果的更新说明 近日,苹果最新公布的一项政策引发了不少开发者的争议,其表示,从…

Android 系统 TP 事件处理流程

简单流程 首先注册 i2c 设备,添加 tp 驱动,然后在 tp 驱动上响应中断、获取用户操作的 数据,通过筛选等一系列操作将数据上报。 *中断、线程、工作队列生成 *放大缩小、xy 对调等算法 *get_event 函数使用 1. 系统调用 TP 驱动 TP 驱动的调…

Java网络编程之UDP和TCP套接字

一. 网络编程概述 我们知道在网络通信中, 数据的发送是从应用层开始, 一直封装到物理层然后进行发送的, 应用层要将数据交给传输层进行封装; 而接收方拿到数据后是从物理层到应用层进行分用, 传输层要将拿到的数据再分用给应用层进行使用, 网络编程实际操作中最关键的就是我们所…

工程师“魔改” AirPods Pro 接口,苹果“妥协”将成大势所趋?

整理 | 朱珂欣 出品 | CSDN程序人生(ID:coder_life) 近年来, USB-C 接口凭借其高效的数据传输、充电速度等优势,促使时下的许多手机品牌大规模使用,可谓实现了统一“半壁江山”的势头,甚至盖…

web开发中的通信协议

websocket def:websocket协议是基于tcp的,实现浏览器与服务器之间全双工通信的一种网络协议 websocket是一种持久协议,多应用在聊天,客服咨询等有实时报送需求的场景下。 早期没有websocket时,通过ajax短时轮询&#x…

GLM联合go-cqhttp实现qq群GLM机器人服务器的本地化部署笔记

GLM qq群服务器的本地化部署笔记 一. 概述1.1 整体结构1.2 目标1.3 需求1.4 流程说明 二. 部署流程2.1 使用GPT转发程序帮助文档2.1.1 使用git安装GLM2.1.2 不使用git安装GLM 2.2 使用Anaconda Navigator 虚拟运行GLM2.2.1 [https://www.anaconda.com/](https://www.anaconda.c…

chatglm-6b:本地手动下载,本地部署

文章目录 模型效果演示操作步骤步骤一步骤二步骤三 ChatGLM-6B是一个由清华大学和智谱AI联合研发的开源对话语言模型。它是一个支持中英双语问答的对话系统,并在中文方面进行了特别的优化。 该模型基于General Language Model (GLM)架构,具有62亿参数。借…

阿里组织变革:设立六大业务集团,成熟一个,上市一个;微软软件工程师最高年薪28.8万美元;iOS 16.4 发布|极客头条...

「极客头条」—— 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews) 一分钟速览新闻点&#…

乐视实行四天半工作制,网友:还招人吗,我有个朋友想去!

作者 | 苏宓、出品 | CSDN(ID:CSDNnews) 新春的第一个工作日,有一个别人家的公司登上了热搜,羡煞旁人,它就是乐视。 起因是因为#乐视开始实行每周四天半工作制#,所谓话少事大,在官宣…

学历造假、拖欠工资、核心技术归属存疑?AI 独角兽创始人遭质疑后回应!

整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 所谓树大招风,正在 Stability AI 及其创造的 Stable Diffusion 模型工具身上体现出来。 Stable Diffusion(SD)是如今主流的文本创建图像的生成式 AI 工具&#xff0c…

『突破极限』利用ChatGPT一分钟生成思维导图,从此告别繁琐,助你轻松学习……

大家有没有经常需要做思维导图的时候? ChatGPT可以快速做PPT、快速做短视频、快速做图片,那可不可以快速做思维导图呢? 答案是肯定滴,而且出图速度超出你的想象,非常离谱。 以后读文献、书籍、商业文章分析简直就是…

【问题已解决】无法定位程序输入点于XXX动态链接库***.dll上

无法定位程序输入点于XXX动态链接库***.dll上 事件前因后果温馨提示解决方法 ChatGPT中文版购买 事件前因后果 在一次安装又卸载falsh(可能非正版)后,关机再开机后,发现除了浏览器,其他软件双击打开是都提 示无法定位…

使用WPS时,SAP导出文件提示windows找不到文件

朋友碰一个问题,用户使用WPS后,SAP导出excel文档,系统无法自动打开且提示以下错误,安装office的就没有这个问题。 不可能让用户去下载office,那样会显 得SAP很拉跨,再说了那么多用户,你去给他装…

WPS Office AI实战:Excel表格处理与分析,一句话搞定

前面几篇我已经系统性将 WPS AI 的能力介绍给你,唯独 Excel 表格的 AI 助力姗姗来迟。近日在WPS AI的功能介绍里发现WPS已经悄悄集成了AI能力,今天就为你拆解下日常的Excel处理,AI 可以提供哪些帮助。(与智能表格 AI 能力相似&…

WPS Office AI实战:智能表格化身智能助理

前面我们已经拿 WPS AI 对Word文字、PPT幻灯片、PDF 做了开箱体验,还没有看过的小伙伴,请翻看以前的文章,本文开始对【智能表格】进行AI开箱测验。 表格在日常的数据处理中占绝对地位,但表格处理并不是每一个人都擅长,…

阿里巴巴腾讯网易京东都宣布了各自的 AI 计划;微软推进裁员 1 万人计划;Rust 1.67.1 发布|极客头条...

「极客头条」—— 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews) 一分钟速览新闻点&#…

163.net邮箱,让海外邮件收发畅通无阻

电子邮件是作为跨境对接及商务往来传输重要媒介方式,通过电子邮件可进行更加高效、专业且低成本的精准营销方式。但由于受到国内外的网络环境、ip等限制,需经过多次跳转,因此导致邮件传输过程中退信、收不到信、丢失等问题的产生。究竟如何让…

使用AutoGpt创建自动化任务

1.下载并安装AutoGpt git clone https://github.com/Torantulino/Auto-GPT.git cd Auto-GPT pip install -r requirements.txt注意要使用python3.8及以上的环境,不然会出现问题: 比如: ERROR: No matching distribution found for colorama…