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

Tags: 阿里 使用方法

分享到: