首先先在腾讯云中开通这三项

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 '';}
}

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

  1. 腾讯云直播功能(云直播为例)

    背景 项目中若涉及到即时通信IM或者直播这种业务场景的,一般都会选择第三方服务,而腾讯在这方面做的还是很好的,QQ和微信的统治力显而易见. 腾讯的服务接口都是以API文档的形式提供给开发者的,使用的时 ...

  2. 集成融云直播聊天室(官方集成以及自我总结)

    近期做直播,当然,直播当然就要做到聊天室,聊天室选择的是融云聊天直播室 首先 官方集成 如下: IMLib SDK 集成说明 下载 IMLib SDK:点击下载 SDK 目录结构说明: libs 目录 ...

  3. edusoho对接腾讯会议直播功能 直播结束自动转存阿里云视频点播

    edusoho的TxMeetingPlugin腾讯会议插件代码压缩包已经发布了 可以免费下载 测试交流学习使用 免费下载 https://download.csdn.net/download/with ...

  4. java 采用腾讯云直播实现多方视频录制并每路画面添加相应的水印

    这是我第一篇文章,本人也是菜鸟,如果有什么不对,也请大神多多指点 话不多说,进入正题. 首先录制视频的前提是推流和拉流同时是连接上才能进行录制工作.否则腾讯云不会给你返回录制的视频地址. 如果你不知道 ...

  5. 融云直播聊天室弹幕表情功能

    //老板要求加入表情功能 看下文档 emoji(){var RongIMEmoji = RongIMLib.RongIMEmoji;var config = {size: 18,url: '//cdn ...

  6. 融云即时通讯之直播聊天室

    前言 做直播当然少不了聊天功能,融云直播聊天室支持消息类型包括文字.语音.图片.点赞.礼物.弹幕等,也支持通过自定义消息实现自已的业务逻辑:支持聊天室用户管理功能,包括创建.加入.销毁.禁言.查询.封 ...

  7. 微信小程序点播插件_小程序云直播amp;云点播插件限时降价了!!!

    普惠音视频开发者 小程序·云直播&云点播插件降价啦! 买200TB流量包免1年插件授权费用 小程序直播插件流量费支持资源包抵扣 点播插件免收播放次数费用 限时降价 买赠活动时间:2020年10 ...

  8. 【直播聊天室】Android开发源码

    基本概念 一.融云直播聊天室介绍 融云直播聊天室,是专门为视频直播业务提供的一个产品.主要特点是: 1.可以支持无人数上限的直播聊天室: 2.支持海量消息的并发,消息速度极快: 3.并可以方便的为直播 ...

  9. 【直播聊天室】特点、构成及解决方案简介

    为方便开发者了解和接入融云直播聊天室,本文将介绍融云直播聊天室功能特点.主要构成及常见功能的解决方案. 一.产品介绍 融云直播聊天室,是专门为视频直播业务提供的一个产品.主要特点是: 丰富的聊天室消息 ...

  10. 【干货】直播聊天室详细分解,让你一眼学会快速搭建!

    直播聊天室 为方便开发者了解和接入融云直播聊天室,本文将介绍融云直播聊天室功能特点.主要构成及常见功能的解决方案. 产品介绍 融云直播聊天室,是专门为视频直播业务提供的一个产品.主要特点是: 丰富的聊 ...

最新文章

  1. Unsupervised Personalized Feature Selection--阅读笔记
  2. RequireJS 主要函数
  3. xmpp协议框架包介绍:org.xmpp.packet.Packet+JID+PacketInterceptor+Session
  4. dz论坛php.ini设置,Discuz!X1.5至3.2论坛Win主机与Linux主机伪静态设置方法
  5. 安卓手机鸿蒙系统怎么下载,华为鸿蒙系统来了:安卓系统会成为下一个“塞班”吗?...
  6. .NET Core:通过Web API进行微服务交互
  7. c盘怎么清理到最干净_系统垃圾太多,怎么一键彻底清理干净
  8. 模拟,贪心,枚举(二)
  9. Git异常:fatal: could not create work tree dir 'XXX': No such file or directory
  10. 配置codeblocks 的养眼colour theme ;鼠标颜色与型状配置,界面汉化,以及调试入门
  11. gitlab创建分支上传文件_环境搭建:gitLab平台的搭建和简单使用
  12. 软件设计与体系结构:设计过程
  13. Cookie、Session的使用及区别
  14. workgroup无法访问.您可能没有权限 完美问答解
  15. HBuilderX 详细安装教程
  16. 不发短信获取短信中心号
  17. oracle快速生成序列号,Oracle实现自定义序列号生成
  18. UI自动化测试(Selenium,Unittest,DDT)
  19. debian配置BT下载工具transmission-daemon
  20. 5-思科防火墙:ASA的基于时间的ACL

热门文章

  1. 一寸照片多大?你知道一寸照片的尺寸吗?
  2. 如何进行git ssh文件的配置
  3. Excel2003 找回工作表密码方法
  4. 电子版微积分,知识共享,数学真知传四方
  5. python抠图教程视频_Python快速抠图不比PS差!1分钟搞定!
  6. wave文件(*.wav)格式、PCM数据格式介绍
  7. 注册Google邮箱,也许你就差这一步
  8. mysql关联修改_MySQL语句修改之关联update语句用法
  9. 四、基于HTTPS协议的12306抢票软件设计与实现--水平DNS并发查询分享
  10. 【小牛分享】jquery mobile网页demo实例代码下载