当前位置:首页 > PHP教程 > php高级应用 > 列表

阿里云直播PHP SDK使用方法详解

发布:smiling 来源: PHP粉丝网  添加日期:2018-09-17 09:54:48 浏览: 评论:0 

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文件,代码如下:

  1. include_once 'Autoloader/Autoloader.php'
  2.  
  3. include_once 'Regions/EndpointConfig.php'
  4. //config sdk auto load path. 
  5.  
  6. Autoloader::addAutoloadPath("aliyun-php-sdk-cdn"); 
  7.  
  8. // Autoloader::addAutoloadPath("aliyun-php-sdk-batchcompute"); 
  9.  
  10. // Autoloader::addAutoloadPath("aliyun-php-sdk-sts"); 
  11.  
  12. // Autoloader::addAutoloadPath("aliyun-php-sdk-push"); 
  13.  
  14. // Autoloader::addAutoloadPath("aliyun-php-sdk-ram"); 
  15.  
  16. // Autoloader::addAutoloadPath("aliyun-php-sdk-ubsms"); 
  17.  
  18. // Autoloader::addAutoloadPath("aliyun-php-sdk-ubsms-inner"); 
  19.  
  20. // Autoloader::addAutoloadPath("aliyun-php-sdk-green"); 
  21.  
  22. // Autoloader::addAutoloadPath("aliyun-php-sdk-dm"); 
  23.  
  24. // Autoloader::addAutoloadPath("aliyun-php-sdk-iot"); 
  25. //config http proxy     
  26.  
  27. define('ENABLE_HTTP_PROXY', FALSE); 
  28.  
  29. define('HTTP_PROXY_IP''127.0.0.1'); 
  30.  
  31. define('HTTP_PROXY_PORT''8888'); 
  32.  
  33. Autoloader::addAutoloadPath("aliyun-php-sdk-cdn");  

这一句作为核心,表示自动加载aliyun-php-sdk-cdn文件夹下所有的PHP文件。aliyun-php-sdk-cdn是直播服务的SDK,若是想使用阿里云的其他功能,则需要引用其他相关的文件夹。

3、调用直播相关PHP SDK,代码如下:

  1. //引用config.php文件,路径根据实际情况自行定义 
  2.  
  3. include_once('aliyunopenapi'.DIRECTORY_SEPARATOR.'aliyun-php-sdk-core'.DIRECTORY_SEPARATOR.'Config.php'); 
  4.  
  5. //$accessKeyId,$accessSecret为阿里云密钥 
  6.  
  7. $iClientProfile = DefaultProfile::getProfile("cn-hangzhou"$accessKeyId$accessSecret); 
  8.  
  9. $client = new DefaultAcsClient($iClientProfile);  

初始化直播的具体操作,DescribeLiveRecordConfigRequest是获取直播云下面,所有的创建的app.

  1. $request = new Cdn\Request\V20141111\DescribeLiveRecordConfigRequest(); 
  2.  
  3. $request ->setDomainName('live.ezoon.cn'); 
  4.  
  5. $request->setAppName($appname); 
  6.  
  7. $request->setOssEndpoint('oss-cn-hangzhou.aliyuncs.com'); 
  8.  
  9. $request->setOssBucket('liveplaybucket'); 
  10.  
  11. $request->setOssObjectPrefix('record/'.$appname.'/{StreamName}/{UnixTimestamp}_{Sequence}'); 
  12.  
  13. //针对阿里云进行请求 
  14.  
  15.  $response = $this->client->getAcsResponse($request); 
  16.  print_r("\r\n"); 
  17.  
  18.  print_r($response); 

4、查看数据返回的结果,返回的值是一个对象,里面:

  1. stdClass Object 
  2.  
  3.  
  4.     [LiveAppRecordList] => stdClass Object 
  5.  
  6.         ( 
  7.  
  8.             [LiveAppRecord] => Array 
  9.  
  10.                 ( 
  11.  
  12.                     [0] => stdClass Object 
  13.  
  14.                         ( 
  15.  
  16.                             [CreateTime] => 2016-07-27T09:48:23Z 
  17.  
  18.                             [DomainName] => live.xxx.cn 
  19.  
  20.                             [OssEndpoint] => oss-cn-hangzhou.aliyuncs.com 
  21.  
  22.                             [AppName] => asfdsadfsadfafds 
  23.  
  24.                             [OssObjectPrefix] => record/asfdsadfsadfafds/{StreamName}/{UnixTimestamp}_{Sequence} 
  25.  
  26.                             [OssBucket] => liveplaybucket 
  27.  
  28.                         ) 
  29.                       [1] => stdClass Object 
  30.  
  31.                         ( 
  32.  
  33.                             [CreateTime] => 2016-07-26T06:46:28Z 
  34.  
  35.                             [DomainName] => live.xxx.cn 
  36.  
  37.                             [OssEndpoint] => oss-cn-hangzhou.aliyuncs.com 
  38.  
  39.                             [AppName] => live1 
  40.  
  41.                             [OssObjectPrefix] => record/live1/{StreamName}/{UnixTimestamp}_{Sequence} 
  42.  
  43.                             [OssBucket] => liveplaybucket 
  44.  
  45.                         ) 
  46.                        [2] => stdClass Object 
  47.  
  48.                         ( 
  49.  
  50.                             [CreateTime] => 2016-07-27T09:37:54Z 
  51.  
  52.                             [DomainName] => live.xxx.cn 
  53.  
  54.                             [OssEndpoint] => oss-cn-hangzhou.aliyuncs.com 
  55.  
  56.                             [AppName] => live1213123213 
  57.  
  58.                             [OssObjectPrefix] => record/live1213123213/{StreamName}/{UnixTimestamp}_{Sequence} 
  59.  
  60.                             [OssBucket] => liveplaybucket 
  61.  
  62.                         ) 
  63.                        [3] => stdClass Object 
  64.  
  65.                         ( 
  66.  
  67.                             [CreateTime] => 2016-07-26T02:55:09Z 
  68.  
  69.                             [DomainName] => live.xxx.cn 
  70.  
  71.                             [OssEndpoint] => oss-cn-hangzhou.aliyuncs.com 
  72.  
  73.                             [AppName] => liveezoon 
  74.  
  75.                             [OssObjectPrefix] => record/liveezoon/{StreamName}/{UnixTimestamp}_{Sequence} 
  76.  
  77.                             [OssBucket] => liveplaybucket 
  78.  
  79.                         ) 
  80.                        [4] => stdClass Object 
  81.  
  82.                         ( 
  83.  
  84.                             [CreateTime] => 2016-07-26T02:55:26Z 
  85.  
  86.                             [DomainName] => live.xxx.cn 
  87.  
  88.                             [OssEndpoint] => oss-cn-hangzhou.aliyuncs.com 
  89.  
  90.                             [AppName] => livetest 
  91.  
  92.                             [OssObjectPrefix] => record/livetest/{StreamName}/{UnixTimestamp}_{Sequence} 
  93.  
  94.                             [OssBucket] => liveplaybucket 
  95.  
  96.                         ) 
  97.                     ) 
  98.             ) 
  99.         [RequestId] => 392B879D-2A09-47B3-85CF-627F7BCD3AC1 
  100.  

Tags: 阿里 使用方法

分享到: