職場小白如何初次認識雲直播
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;
}