职场小白如何初次认识云直播
PHP集成腾讯云直播与七牛云直播相关操作
腾讯云与七牛云的直播sdk
下载地址一个暖心大佬提供的集成sdk(非作者本人)
composer require goodspb/live-sdk
composer会出现存在一些问题,下面列举一些常常出现的问题*
1.可能存在旧版本删除问题,如果直接composer require 文件名,而这个文件名后面没有加":版本号",会存在找不到地址导致失败,所以建议在composer的时候如果该文件有版本号后面尽量加上
2.扩展包关联问题,在有些扩展包下载的时候,是需要另一个扩展包支持的,例如我们下载的这个扩展包 goodspb/live-sdk是需要先看一下自己的vendor里面有没有guzzlehttp/guzzle这个扩展包的 没有则 composer require guzzlehttp/guzzle
3.扩展包是存在php版本兼容问题的,composer的时候是需要看下自己的版本是否符合
由于tp版本不同引入vendor里面扩展的方法也有不同的方法,方法不对not found class*
简略的说一下常用引用方法,详细去找论坛其他博主,本人较懒
- import(‘lib.cwb’,VENDOR_PATH,’.class.php’); 第一个参数是地址/类名,第二个参数定义的全局常量(vendor的地址) 第三个参数是读取后缀为.class或者为.php
2.vendor() 和上面使用方法相似,注意差别就是二三参数可以省略
3.手动引入了类文件后,进行实例化需要特别注意了!在 new 类文件()时,在类文件前面加一个 “ \ ”,例如 $obj = new \Cwb();
上代码
$live = new \Goodspb\LiveSdk\Live();
1.配置文件引入
$config = require __DIR__ . '/live.php';
2.创建房间
$live->setConfig($config);
$agent = $live->getAgent();
$room = $agent->create($room_id);
数据会返回推流地址
3.查看房间状态
$status = $agent->status($room_id);
返回bool格式
4.关闭直播
$result = $agent->close($roomId);//关闭直播
返回bool格式
关于配置文件
return [
'upstream' => [
/*
* 比例最终加起来要100
* 'qiniu' => 50,
* 'jinshan' => 50,
*/
'qiniu' => 100,
],
'agents' => [
'qiniu' => [
'enable' => true,
'class' => Goodspb\LiveSdk\Agents\QiniuAgent::class,
'hub' => '', //直播空间名
'base_url' => [ //绑定域名
'rtmp_push_url' => '',
'rtmp_play_url' => '',
'hls_play_url' => '',
'hdl_play_url' => '',
],
'expire' => '', //推流地址过期时间
'ak' => '',
'sk' => '',
],
'qcloud' => [
'enable' => true,
'class' => Goodspb\LiveSdk\Agents\QcloudAgent::class,
'api_base_url' => 'http://fcgi.video.qcloud.com/common_access',
'appid' => '',
'bizid' => '', //直播码
'expire' => , //推流过期时间
'push_key' => '', //推流防盗链Key
'api_key' => '', //Api鉴权Key
],
],
'http' => [
'timeout' => 30,
'connect_timeout' => 0,
],
];
转载地址插件官方文档
关于视频回放问题
1.腾讯云
TencentCloud/tencentcloud-sdk-php
腾讯云需要开通云点播功能,然后在控制台中配置录制模板然后即可自动保存回放
查看回放需要下载官方第三方SDK或者使用API,个人觉得使用SDK更合适由于API存在v1,v3版本所以签名很容易配置错误,SDK更加简单有效
配置id和密钥,然后官方有相关查询参数,可以按照create_time进行倒叙查询获取最新的回放视频
$params代表搜索参数以json格式传输
1.回放列表查询(搜索媒资列表)
try {
$cred = new Credential("secretid", "secretkey");
$httpProfile = new HttpProfile();
$httpProfile->setEndpoint("vod.tencentcloudapi.com");
$clientProfile = new ClientProfile();
$clientProfile->setHttpProfile($httpProfile);
$client = new VodClient($cred, "ap-beijing", $clientProfile);
$req = new SearchMediaRequest();
$params = $arr;
$req->fromJsonString($params);
$resp = $client->SearchMedia($req);
return $resp->toJsonString();
}
catch(TencentCloudSDKException $e) {
echo $e;
}