<?php
/*** Notes: 视频点播* User : zzy* Date : 2019/10/31* Time : 8:52*/
defined('BASEPATH') OR exit('No direct script access allowed');
require_once APPPATH.'/vendor/aliyuncs/aliyun-php-sdk/aliyun-php-sdk-core/Config.php';
require_once APPPATH."/vendor/aliyuncs/oss-sdk-php/autoload.php";
use vod\Request\V20170321 as vod;
use OSS\OssClient;
use OSS\Core\OssException;class AliyunDemand{private $accessKeyId = '';private $accessKeySecret = '';private $callback = '';private $connection;/*** 构造函数初始化配置*/public function __construct(){$CI = &get_instance();$CI->config->load('aliyundemand',TRUE);$config = $CI->config->item('demand','aliyundemand');$this->accessKeyId = $config['accessKeyId'];$this->accessKeySecret = $config['accessKeySecret'];$this->callback = $config['callback'];$this->connection = $this->initVodClient($this->accessKeyId,$this->accessKeySecret);}/*** Notes: 初始化点播服务* User: zzy* Date: 2019/10/31* Time: 8:56* Version:* @param $accessKeyId* @param $accessKeySecret* @return DefaultAcsClient*/private function initVodClient($accessKeyId, $accessKeySecret) {$regionId = 'cn-shanghai';  // 点播服务接入区域$profile = DefaultProfile::getProfile($regionId, $accessKeyId, $accessKeySecret);return new DefaultAcsClient($profile);}/*** Notes:刷新上传凭证* User: zzy* Date: 2019/10/31* Time: 15:25* Version:* @param $vodClient* @param $videoId* @return mixed|SimpleXMLElement* @throws ClientException* @throws ServerException*/public function refresh_upload_video($vodClient, $videoId) {$request = new vod\RefreshUploadVideoRequest();$request->setVideoId($videoId);return $this->connection->getAcsResponse($request);}/*** Notes: 初始化点播oss* User: zzy* Date: 2019/10/31* Time: 18:34* Version:* @param $uploadAuth* @param $uploadAddress* @return OssClient* @throws OssException*/public function init_oss_client($uploadAuth, $uploadAddress) {$ossClient = new OssClient($uploadAuth['AccessKeyId'], $uploadAuth['AccessKeySecret'], $uploadAddress['Endpoint'],false, $uploadAuth['SecurityToken']);$ossClient->setTimeout(86400*7);    // 设置请求超时时间,单位秒,默认是5184000秒, 建议不要设置太小,如果上传文件很大,消耗的时间会比较长$ossClient->setConnectTimeout(10);  // 设置连接超时时间,单位秒,默认是10秒return $ossClient;}/*** Notes:大文件分片上传,支持断点续传;最大支持48.8TB* User: zzy* Date: 2019/10/31* Time: 15:28* Version:* @param $ossClient* @param $uploadAddress* @param $localFile* @return mixed*/public function multipart_upload_file($ossClient, $uploadAddress, $localFile) {return $ossClient->multiuploadFile($uploadAddress['Bucket'], $uploadAddress['FileName'], $localFile);}/*** 获取视频上传地址和凭证* @param client 发送请求客户端w* @return CreateUploadVideoResponse 获取视频上传地址和凭证响应数据*//*** Notes:获取视频上传地址和凭证* User: zzy* Date: 2019/10/31* Time: 16:43* Version:* @return mixed|SimpleXMLElement* @throws ClientException* @throws ServerException* @return CreateUploadVideoResponse 获取视频上传地址和凭证响应数据*/public function createUploadVideo($data) {$request = new vod\CreateUploadVideoRequest();isset($data['title'])?$request->setTitle($data['title']):"";                               //标题,UTF8,128大小isset($data['fileName'])?$request->setFileName($data['fileName']):"";                      //视频源文件名isset($data['fileSize'])?$request->setFileSize($data['fileSize']):"";                      //大小,字节isset($data['description'])?$request->setDescription($data['description']):"";             //描述,utf-8isset($data['coverURL'])?$request->setCoverURL($data['coverURL']):"";                      //封面urlisset($data['cateId'])?$request->setCateId($data['cateId']):"";                            //分类idisset($data['tags'])?$request->setTags($data['tags']):"";                                  //标签,隔开isset($data['templateGroupId'])?$request->setTemplateGroupId($data['templateGroupId']):""; //转码模板组IDisset($data['storageLocation'])?$request->setStorageLocation($data['storageLocation']):""; //存储地址$request->setAcceptFormat('JSON');return $this->connection->getAcsResponse($request);}/*** Notes:修改视频信息* User: zzy* Date: 2019/11/1* Time: 13:07* Version:* @param $videoId* @param $data* @return mixed|SimpleXMLElement* @throws ClientException* @throws ServerException*/public  function updateVideoInfo($videoId,$data) {$request = new vod\UpdateVideoInfoRequest();$request->setVideoId($videoId);isset($data['title'])?$request->setTitle($data['title']):"";                               //标题,UTF8,128大小isset($data['description'])?$request->setDescription($data['description']):"";             //描述,utf-8isset($data['coverURL'])?$request->setCoverURL($data['coverURL']):"";                      //封面urlisset($data['tags'])?$request->setTags($data['tags']):"";                                  //标签,隔开isset($data['cateId'])?$request->setCateId($data['cateId']):"";                            //分类id$request->setAcceptFormat('JSON');return $this->connection->getAcsResponse($request);}/*** Notes: 删除音频信息* User: zzy* Date: 2019/11/1* Time: 13:08* Version:* @param $videoIds* @return mixed|SimpleXMLElement* @throws ClientException* @throws ServerException*/public function deleteVideos($videoIds) {$request = new vod\DeleteVideoRequest();$request->setVideoIds($videoIds);   // 支持批量删除视频;videoIds为传入的视频ID列表,多个用逗号分隔$request->setAcceptFormat('JSON');$request->setAcceptFormat('JSON');return $this->connection->getAcsResponse($request);}/*** Notes: 上传点播网路视频* User: zzy* Date: 2019/11/5* Time: 14:04* Version:* @return string*/public  function ossUploadWebVideo($videoUrl,$videoTitle,$description='',$cateId='',$tags=''){try {$uploader = new AliyunVodUploader($this->accessKeyId,  $this->accessKeySecret);$uploadVideoRequest = new UploadVideoRequest($videoUrl, $videoTitle,$description,$cateId,$tags);/*            $userData = array("MessageCallback"=>array("CallbackURL"=>$this->callback),//你的回调地址,http://www.xxx.com,这个地址回返回一个json格式的文件,你用获取HTTP里的body值);$uploadVideoRequest->setUserData(json_encode($userData));*/$res = $uploader->uploadWebVideo($uploadVideoRequest);return array("status"=>1,"data"=>$res);} catch (Exception $e) {return array("status"=>0,"data"=>$e->getMessage());}}/*** Notes: 点播本地视频上传* User: zzy* Date: 2019/10/31* Time: 16:38* Version:*/public  function UploadLocalVideo($data){try {#$file = $_FILES;$localFile = PUBLIC_PATH.$data['videoUrl'];$createRes =  $this->createUploadVideo($data);$videoId = $createRes->VideoId;$uploadAddress = json_decode(base64_decode($createRes->UploadAddress), true);$uploadAuth = json_decode(base64_decode($createRes->UploadAuth), true);$ossClient = $this->init_oss_client($uploadAuth, $uploadAddress);$result = $this->multipart_upload_file($ossClient, $uploadAddress, $localFile);return array("status"=>1,"data"=>$videoId);} catch (Exception $e) {return array("status"=>0,"data"=>$e->getMessage());}}/*** Notes: 获取音频播放地址* User: zzy* Date: 2019/10/31* Time: 18:15* Version:* @param $client* @param $videoId* @return mixed*/public  function getPlayInfo($videoId) {$request = new vod\GetPlayInfoRequest();$request->setVideoId($videoId);$request->setAuthTimeout(0);$request->setAcceptFormat('JSON');$videoInfoObj = $this->connection->getAcsResponse($request);if($videoInfoObj) {$videoInfoArr =  json_decode( json_encode( $videoInfoObj),true);return $videoInfoArr;} else {return false;}}/*** Notes: 获取播放凭证* User: zzy* Date: 2019/10/31* Time: 18:28* Version:* @param $videoId* @return mixed|SimpleXMLElement* @throws ClientException* @throws ServerException*/public  function getPlayAuth($videoId) {$request = new vod\GetVideoPlayAuthRequest();$request->setVideoId($videoId);$request->setAuthInfoTimeout(3000);$request->setAcceptFormat('JSON');$response = $this->connection->getAcsResponse($request);return $response;}/*** Notes:媒资分类-创建分类* User: zzy* Date: 2019/10/31* Time: 18:30* Version:* @param $cateName            分类名称* @param int $parentId        父级id* @return mixed|SimpleXMLElement* @throws ClientException* @throws ServerException*/public function addCategory($cateName, $parentId=-1) {$request = new vod\AddCategoryRequest();$request->setCateName($cateName);$request->setParentId($parentId);$request->setAcceptFormat('JSON');$response = $this->connection->getAcsResponse($request);return $response;}/*** Notes: 媒资分类-修改分类* User: zzy* Date: 2019/10/31* Time: 18:31* Version:* @param $client* @param $cateId* @param $cateName* @return mixed*/public  function updateCategory($cateId, $cateName) {$request = new vod\UpdateCategoryRequest();$request->setCateId($cateId);$request->setCateName($cateName);   // 分类名称$request->setAcceptFormat('JSON');$response = $this->connection->getAcsResponse($request);return $response;}/*** Notes:媒资分类-删除分类* User: zzy* Date: 2019/10/31* Time: 18:31* Version:* @param $client* @param $cateId* @return mixed*/public  function deleteCategory($cateId) {$request = new vod\DeleteCategoryRequest();$request->setCateId($cateId);$request->setAcceptFormat('JSON');$response = $this->connection->getAcsResponse($request);return $response;}/*** Notes:媒资分类-查询分类及其子分类* User: zzy* Date: 2019/10/31* Time: 18:32* Version:* @param int $cateId* @param int $pageNo* @param int $pageSize* @return mixed*/public  function getCategories($cateId=-1, $pageNo=1, $pageSize=10) {$request = new vod\GetCategoriesRequest();$request->setCateId($cateId);   // 分类ID,默认为根节点分类ID即-1$request->setPageNo($pageNo);$request->setPageSize($pageSize);$request->setAcceptFormat('JSON');$response = $this->connection->getAcsResponse($request);return $response;}/*** Notes:提交智能审核作业* User: zzy* Date: 2019/11/1* Time: 9:21* Version:* @return mixed*/public function submitAIMediaAuditJob($videoId) {$request = new vod\SubmitAIMediaAuditJobRequest();// 设置视频ID$request->setMediaId($videoId);// 返回结果$response = $this->connection->getAcsResponse($request);return $response;}/*** Notes:查询智能审核作业* User: zzy* Date: 2019/11/1* Time: 9:24* Version:* @param $videoId* @return mixed|SimpleXMLElement* @throws ClientException* @throws ServerException*/public function getAIMediaAuditJob($videoId) {$request = new vod\GetAIMediaAuditJobRequest();// 设置作业ID$request->setJobId($videoId);// 返回结果$response = $this->connection->getAcsResponse($request);return $response;}/*** Notes:获取智能审核结果摘要* User: zzy* Date: 2019/11/1* Time: 9:25* Version:* @param $videoId* @return mixed|SimpleXMLElement* @throws ClientException* @throws ServerException*/public  function getMediaAuditResult($videoId) {$request = new vod\GetMediaAuditResultRequest();// 设置视频ID$request->setMediaId($videoId);// 返回结果$response = $this->connection->getAcsResponse($request);return $response;}/*** Notes:获取智能审核结果详情* User: zzy* Date: 2019/11/1* Time: 9:29* Version:* @param $videoId  视频id* @param $page 结果详情页码* @return mixed|SimpleXMLElement* @throws ClientException* @throws ServerException*/public function getMediaAuditResultDetail($videoId,$page) {$request = new vod\GetMediaAuditResultDetailRequest();// 设置视频ID$request->setMediaId($videoId);// 设置翻页$request->setPageNo($page);// 返回结果$response = $this->connection->getAcsResponse($request);return $response;}/*** Notes:预热缓存* User: zzy* Date: 2019/11/1* Time: 9:30* Version:* @param $client* @return mixed*/public function preloadVodObjectCaches($videoPath) {$request = new vod\PreloadVodObjectCachesRequest();// 需要预热的文件路径$request->setObjectPath($videoPath);// 返回结果$response = $this->connection->getAcsResponse($request);return $response;}/*** Notes:查询刷新预热次数限制和余量* User: zzy* Date: 2019/11/1* Time: 9:31* Version:* @return mixed*/public function describeVodRefreshQuota() {$request = new vod\DescribeVodRefreshQuotaRequest();$response = $this->connection->getAcsResponse($request);return $response;}}

阿里云SDK下载安装地址:https://helpcdn.aliyun.com/document_detail/61067.html?spm=a2c4g.11186623.2.59.1a61192bkPa5YH

阿里云点播上传SDK下载地址:https://helpcdn.aliyun.com/document_detail/100976.html?spm=a2c4g.11186623.6.1060.790b3a65aGEr4p

阿里云视频点播实例旧版相关推荐

  1. 阿里云视频点播(测试)

    阿里云视频点播(测试) 文章目录 阿里云视频点播(测试) 服务端SDK 1. 简介: 2.功能介绍 一.使用SDK 二.创建测试用例 1.获取视频播放凭证 2.获取视频播放地址 三.安装SDK 三.测 ...

  2. 玩转短视频?守护视频安全?AI智能提速?一分钱体验? 阿里云视频点播大招盘点...

    摘要: 前言 随着近几年在线视频市场规模不断扩大,内容不断创新,用户粘性增加,在线视频市场的商业价值不断增长,各垂直行业纷纷引入视频能力,一时之间,视频已经成为了众多移动APP和在线平台沉淀用户的有效 ...

  3. 快速解决:阿里云ECS实例远程桌面连接 发生身份验证错误。要求的函数不受支持 !

    三步解决问题: 本地PC 远程桌面连接 阿里云ECS实例 失败 ? 报错: "发生身份验证错误.要求的函数不受支持" ? 一.问题截图描述: 二.3步解决问题: 1. 网页版 · ...

  4. 阿里云mysql宽带_阿里云数据库RDS MySQL版购买使用详细过程

    阿里云数据库 RDS MySQL 版如何购买使用?通过前面学习如何选择阿里云数据库 RDS MySQL 版,魏艾斯博客已经阿里云 MySQL 有了初步认识,接下来跟着老魏一起购买使用阿里云数据库 RD ...

  5. 阿里云视频点播服务SDK的使用,视频文件上传测试

    文章目录 阿里云视频点播技术简介 一.阿里云视频点播技术能力盘点 1.应用场景 2.功能介绍 二.开通视频点播云平台 1.选择视频点播服务 2.开通视频点播 3.选择按使用流量计费 4.资费说明 5. ...

  6. 阿里云视频点播-对接注意点

    阿里云视频点播-对接注意点 ​ 对接接阿里云的视频点播过程有点繁琐,做个记录以便以后查阅 一.分发加速配置-域名管理 ​ 配置成功的前提是自己先要有个主域名,并且成功备案. 1.先配置一个域名 2.配 ...

  7. SpringBoot - 阿里云视频点播的简单使用

    视频点播(ApsaraVideo for VoD)是集音视频采集.编辑.上传.自动化转码处理.媒体资源管理.分发加速于一体的一站式音视频点播解决方案. 一.阿里云开通视频点播及控制台常用操作 开通地址 ...

  8. 阿里云视频点播大招盘点

    前言 随着近几年在线视频市场规模不断扩大,内容不断创新,用户粘性增加,在线视频市场的商业价值不断增长,各垂直行业纷纷引入视频能力,一时之间,视频已经成为了众多移动APP和在线平台沉淀用户的有效方法. ...

  9. 阿里云视频点播技术能力盘点

    随着近几年在线视频市场规模不断扩大,内容不断创新,用户粘性增加,在线视频市场的商业价值不断增长,各垂直行业纷纷引入视频能力,一时之间,视频已经成为了众多移动APP和在线平台沉淀用户的有效方法. 为了让 ...

最新文章

  1. JSP笔记-XML 数据处理
  2. .NET 中 Image 转 Icon
  3. Hive的JDBC连接和数据查询功能
  4. NumPy 数组对象
  5. paradox 修改字段长度_关于生日的作文500字9篇
  6. java 日期是否合法_检测日期字符串是否为合法(java版)
  7. ASP“.NET研究”.NET中的认证与授权
  8. 集成 Tomcat、 Servlet 的生命周期
  9. Spring Cloud Gateway 原理与应用场景
  10. mysql set语句_从强网杯随便注浅析mysql存储过程
  11. php获取视频大小代码怎么写,利用php获得flv视频长度的实例代码
  12. gear操作系统 基于web的linux开放平台,支持Linux操作系统 开源飞机模拟器FlightGear...
  13. 详解JAVA的getBytes()方法
  14. 现在骨传导耳机什么牌子最好,最受欢迎的五款骨传导耳机推荐
  15. kettle 9.1 连接hadoop clusters (CDH 6.2)
  16. The project seems to require yarn but it‘s not installed.
  17. 利用最小二乘法进行参数估计
  18. 硬件设计之一——电源设计05:过电流能力
  19. NBA得分后卫阅兵:科比榜首麦蒂第9 小AI获至高赞誉
  20. 怎么在Ubuntu手机上发送短信及拨打电话

热门文章

  1. Java编写的(骑士)飞行棋
  2. 敢看系列?Python字体反爬实战案例之实习那僧,继续挖坑
  3. 游戏修改器制作教程四:用API读写内存
  4. PHP中使用mpdf导出PDF文件以及生成PDF的方法
  5. 化工集团数字化转型新契机双重预防机制数字化建设
  6. 使用内网穿透实现本机支付回调测试 natapp
  7. Flink中max和maxBy的区别及使用
  8. C、C++以及widows编程、数据结构算法等编程书籍推荐
  9. HTML css 实现字体渐变颜色
  10. 耗时半月滴滴3面,费尽九牛二虎之力才拿offer,入职三天现已失业!