• 阿里云直播PHP SDK如何使用


    阿里云直播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目录结构如下:

    1. aliyun-php-sdk-core:作为PHP SDK引用核心包,只要使用阿里云的产品的php SDK,这个文件夹下的所有东东都是基础。
    2. 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 CdnRequestV20141111DescribeLiveRecordConfigRequest();

    $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(" "); 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 )

  • 相关阅读:
    C# 反射修改私有静态成员变量
    symfony2 controller
    symfony2 路由工作原理及配置
    symfony2 安装并创建第一个页面
    git操作命令
    Node异步I/O、事件驱动与高性能服务器
    nodejs get/request
    nodejs events模块
    nodejs 小爬虫
    nodejs API
  • 原文地址:https://www.cnblogs.com/smilevv/p/13260657.html
Copyright © 2020-2023  润新知