阿里云直播PHP SDK如何使用
前一篇聊了聊关于阿里云直播,如何进行进行调试,ok,那这篇我们就聊一聊关于阿里云直播的SDK(当然是关于PHP的),基于下面的原因:
1、直播云没有单独的SDK,直播部分的SDK是直接封装在CDN的相关的SDK里面
2、针对SDK,没有demo。
3、针对SDK,没有相关的文档说明。
4、针对SDK的说明,网站上面的说明与源码里面的说明完全不一致。
5、针对SDK没有封装那些常用的访问,需要用户组合调用SDK进行拼装,总之一句,这也太抽象,看看人家七牛的API,哎,不多说啥了
6、提供的SDK路径乱的一踏糊涂,想直接用没门,得各种调整。
7、针对SDK基于PHP更高登记的版本,照顾不到一些低版本用户。
针对上面几点原因,踩了一部分坑,参考其他云直播提供的通用接口进行整理的。
首先,我们分析一下阿里云提供的PHP SDK。阿里云SDK目录结构如下:
- aliyun-php-sdk-core:作为PHP SDK引用核心包,只要使用阿里云的产品的php 的SDK,这个文件夹下的所有东东都是基础。
- aliyun-php-sdk-cdn:这个包里面是阿里云 CDN产品的PHP SDK,但是目前直播里面的SDK都在这个里面,可能是因为直播产品和CDN产品比较紧密吧!(PS:在开通直播产品时,CDN产品的开通是前提条件)
下图为从阿里云的PHP SDK整个大包,里面包含阿里云所有产品的PHP SDK。
接下下来,我们来看看如何配置,这一步很关键,阿里云的官方网站上面内容 与 SDK 的demo ,有三个版本。(这是痛苦的根源,哈哈)
1、将整个PHP SDK包放置项目目录当中。
2、配置aliyun-php-sdk-core
在aliyun-php-sdk-core下面有一个config.php文件
include_once 'Autoloader/Autoloader.php';
include_once 'Regions/EndpointConfig.php'; //config sdk auto load path.
Autoloader::addAutoloadPath("aliyun-php-sdk-cdn");
// Autoloader::addAutoloadPath("aliyun-php-sdk-batchcompute");
// Autoloader::addAutoloadPath("aliyun-php-sdk-sts");
// Autoloader::addAutoloadPath("aliyun-php-sdk-push");
// Autoloader::addAutoloadPath("aliyun-php-sdk-ram");
// Autoloader::addAutoloadPath("aliyun-php-sdk-ubsms");
// Autoloader::addAutoloadPath("aliyun-php-sdk-ubsms-inner");
// Autoloader::addAutoloadPath("aliyun-php-sdk-green");
// Autoloader::addAutoloadPath("aliyun-php-sdk-dm");
// Autoloader::addAutoloadPath("aliyun-php-sdk-iot"); //config http proxy
define('ENABLE_HTTP_PROXY', FALSE);
define('HTTP_PROXY_IP', '127.0.0.1');
define('HTTP_PROXY_PORT', '8888');
Autoloader::addAutoloadPath("aliyun-php-sdk-cdn"); 这一句作为核心,表示自动加载aliyun-php-sdk-cdn文件夹下所有的PHP文件。aliyun-php-sdk-cdn是直播服务的SDK,若是想使用阿里云的其他功能,则需要引用其他相关的文件夹。
3、调用直播相关PHP SDK
//引用config.php文件,路径根据实际情况自行定义
include_once('aliyunopenapi'.DIRECTORY_SEPARATOR.'aliyun-php-sdk-core'.DIRECTORY_SEPARATOR.'Config.php');
//$accessKeyId,$accessSecret为阿里云密钥
$iClientProfile = DefaultProfile::getProfile("cn-hangzhou", $accessKeyId, $accessSecret);
$client = new DefaultAcsClient($iClientProfile); //初始化直播的具体操作,DescribeLiveRecordConfigRequest是获取直播云下面,所有的创建的app $request = new Cdn\Request\V20141111\DescribeLiveRecordConfigRequest();
$request ->setDomainName('live.ezoon.cn');
$request->setAppName($appname);
$request->setOssEndpoint('oss-cn-hangzhou.aliyuncs.com');
$request->setOssBucket('liveplaybucket');
$request->setOssObjectPrefix('record/'.$appname.'/{StreamName}/{UnixTimestamp}_{Sequence}'); //针对阿里云进行请求
$response = $this->client->getAcsResponse($request); print_r("\r\n");
print_r($response);
4、查看数据返回的结果,返回的值是一个对象,里面
stdClass Object
(
[LiveAppRecordList] => stdClass Object
(
[LiveAppRecord] => Array
(
[0] => stdClass Object
(
[CreateTime] => 2016-07-27T09:48:23Z
[DomainName] => live.xxx.cn
[OssEndpoint] => oss-cn-hangzhou.aliyuncs.com
[AppName] => asfdsadfsadfafds
[OssObjectPrefix] => record/asfdsadfsadfafds/{StreamName}/{UnixTimestamp}_{Sequence}
[OssBucket] => liveplaybucket
) [1] => stdClass Object
(
[CreateTime] => 2016-07-26T06:46:28Z
[DomainName] => live.xxx.cn
[OssEndpoint] => oss-cn-hangzhou.aliyuncs.com
[AppName] => live1
[OssObjectPrefix] => record/live1/{StreamName}/{UnixTimestamp}_{Sequence}
[OssBucket] => liveplaybucket
) [2] => stdClass Object
(
[CreateTime] => 2016-07-27T09:37:54Z
[DomainName] => live.xxx.cn
[OssEndpoint] => oss-cn-hangzhou.aliyuncs.com
[AppName] => live1213123213
[OssObjectPrefix] => record/live1213123213/{StreamName}/{UnixTimestamp}_{Sequence}
[OssBucket] => liveplaybucket
) [3] => stdClass Object
(
[CreateTime] => 2016-07-26T02:55:09Z
[DomainName] => live.xxx.cn
[OssEndpoint] => oss-cn-hangzhou.aliyuncs.com
[AppName] => liveezoon
[OssObjectPrefix] => record/liveezoon/{StreamName}/{UnixTimestamp}_{Sequence}
[OssBucket] => liveplaybucket
) [4] => stdClass Object
(
[CreateTime] => 2016-07-26T02:55:26Z
[DomainName] => live.xxx.cn
[OssEndpoint] => oss-cn-hangzhou.aliyuncs.com
[AppName] => livetest
[OssObjectPrefix] => record/livetest/{StreamName}/{UnixTimestamp}_{Sequence}
[OssBucket] => liveplaybucket
) ) ) [RequestId] => 392B879D-2A09-47B3-85CF-627F7BCD3AC1
)
阿里云直播PHP SDK如何使用的更多相关文章
- 阿里云直播 C# SDK 如何使用
阿里云直播SDK的坑 1.直播云没有单独的SDK,直播部分被封装在CDN的相关SDK当中. 2.针对SDK,没有相关Demo. 3.针对SDK,没有相关的文档说明. 4.针对SDK的说明,官网上的说明 ...
- 阿里云直播服务 sdk demo php
[php] <?php /** * Created by PhpStorm. * User: Administrator * Date: 2016/12/8 0008 * Time: 11:05 ...
- iOS直播集成和问题总结(阿里云直播)
https://www.jianshu.com/p/714ce954e628 最近接手公司的直播项目,对以前遗留的问题做处理和优化, 于是顺便看了下阿里云直播的文档,在下面写下对直播的理解和遇到的问题 ...
- 使用visual studio 2015调用阿里云oss .net sdk 2.2的putobject接口抛出outofmemory异常
问题描述: 使用阿里云oss .net sdk 2.2版本,使用putobject接口上传文件时,抛出outofmemory异常. 原因分析: 上传时,用于准备上传的数据缓冲区内存分配失败.与应用软件 ...
- 阿里云直播鉴权java代码示例
段时间公司需要做直播服务,所以就研究了一下阿里云的直播,在直播里面,最重要的就是url的鉴权操作(验证推流或者拉流的有效性),在网上找了很多代码,都没有发现java的demo,所以就写篇播客记录一下, ...
- 基于阿里云直播实现视频推流(ffmpeg)/拉流(Django2.0)以及在线视频直播播放(支持http/https)功能
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_146 由于5g网络的光速推广,视频业务又被推上了风口浪尖,在2019年初我们还在谈论照片,短视频等关键字,而进入2020年,我们津 ...
- 阿里云直播SDK - .NET
阿里云sdk:https://develop.aliyun.com/sdk/csharp?spm=5176.doc27234.2.4.QiJb9l Github:https://github.com/ ...
- 阿里云OSS NET SDK 引用示范程序
1.引入SDK bin文件,下载地址:https://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/internal/oss/0.0.4/assets/sdk/ ...
- 阿里云 rds python sdk不支持python3处理
阿里云文档中心的python版本aliyun-python-sdk-rds不支持python3处理 问题:默认情况下文档中心的python版本只支持python2,不兼容python3版本 需要稍微修 ...
随机推荐
- C#设计模式
自从上次记录完“重构之道”以后,查询设计模式挺麻烦的.就打算把原先写的设计模式系列合并一下. 设计原则 使用设计模式的根本原因就是适应需求变化,提高代码的复用率,使程序更具有扩展性和可维护性. SOL ...
- 关于SQL的相关笔记【长期更新,只发一帖】
场景[1]多表联查时,主表与关联表同时与同一张(第三张表)有关联,类似三角恋关系- - 涉及表: HOUSE:记录了房屋信息 ROOMS:记录了房间信息 HOUSE_STATUS:记录了状态信息的中文 ...
- Nuget Command Console
Get-Package -ListAvailable -Filter contracts 命令行 注意选择 程序包源
- jmeter分布式操作-远程启动功能探索
一.背景: 之前在Jmeter插件监控服务器性能一篇中说到,在非GUI环境中监控时为了保存监控数据需要修改jmeter脚本,并且每次通过施压机(远程服务器,非GUI环境)来压测时都要将jmeter脚本 ...
- cygwin 安装完后不能进入think问题,网上99%都是错误的
正确的做法是首次进入的时候,显示的是哪个用户名就修改哪个用户名 比如我的电脑是 默认显示的是think 那么就去修改think 为 root 并把unused 后的2个数字改成0 然后在home下新建 ...
- 推荐一篇关于java 学习的文章,感觉写的很不错
---恢复内容开始--- 很多网友问我学习Java有没有什么捷径,我说"无他,唯手熟尔".但是我却很愿意将自己学习的一些经验写出来,以便后来者少走弯路,帮助别人是最大的快乐嘛 ...
- 制造高CPU使用率的简单方法
在群里有人问制造CPU占用率高的场景用来做测试.所谓做好事难,干“坏”事还不容易?这个需求有很多方法可以实现,比如使用一些压力测试工具.我首先想 到的是HASH JOIN.这个联接比较消耗CPU资源, ...
- 关于MapReduce中自定义分区类(四)
MapTask类 在MapTask类中找到run函数 if(useNewApi){ runNewMapper(job, splitMetaInfo, umbilical, reporter ...
- hdu2005第几天?
Problem Description 给定一个日期,输出这个日期是该年的第几天. Input 输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input , ...
- Eclispe远程调试tomcat设置
首先在catelina.sh中添加 JAVA_OPTS="$JAVA_OPTS -Xrunjdwp:transport=dt_socket,address=23787,server=y,su ...