Explorar el Código

add vod image

xielin hace 5 años
padre
commit
67407481f2

+ 22 - 3
app/Http/Controllers/V1/AliYunVodController.php

@@ -14,6 +14,7 @@ use App\Service\AliYunVodService;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Log;
 use Illuminate\Support\Facades\Validator;
+use ShaoZeMing\AliVod\SDK\CreateUploadImageRequest;
 use ShaoZeMing\AliVod\SDK\GetPlayInfoRequest;
 use ShaoZeMing\AliVod\Services\UploadService;
 use ShaoZeMing\Aliyun\Core\DefaultAcsClient;
@@ -21,7 +22,7 @@ use ShaoZeMing\Aliyun\Core\Profile\DefaultProfile;
 
 class AliYunVodController extends Controller
 {
-    public function __construct(FeedRepositories $feedRepositories,AliYunVodService $aliYunVodService)
+    public function __construct(FeedRepositories $feedRepositories, AliYunVodService $aliYunVodService)
     {
         $this->feedRepositories = $feedRepositories;
         $this->aliYunVodService = $aliYunVodService;
@@ -47,7 +48,7 @@ class AliYunVodController extends Controller
         $instance = new UploadService(config('aliyunvod'));
         $title = $request['title'];
         $filename = $request['filename'];
-        $coverUrl = isset($request['cover_url']) ?$request['cover_url']:'';
+        $coverUrl = isset($request['cover_url']) ? $request['cover_url'] : '';
         try {
             $result = $instance->createUploadVideo($title, $filename, '', $coverUrl);  //获取视频上传地址和凭证
 //            $result = $instance->refreshUploadVideo($videoId);  //刷新视频上传凭证
@@ -58,6 +59,24 @@ class AliYunVodController extends Controller
         }
     }
 
+    /**
+     * 获取图片上传凭证信息
+     * @param Request $request
+     * @return array
+     * @throws \ShaoZeMing\Aliyun\Core\Exception\ClientException
+     * @throws \ShaoZeMing\Aliyun\Core\Exception\ServerException
+     */
+    public function getImgUploadAuth(Request $request)
+    {
+        try {
+            $imageInfo = $this->aliYunVodService->getImgUploadAuth();
+            return $this->jsonSuccess($imageInfo);
+        } catch (\Exception $e) {
+            return $this->jsonError('获取上传凭证失败' . $e->getMessage());
+        }
+    }
+
+
     public function getPlayUrlByVideoId(Request $request)
     {
         $request = $request->all();
@@ -69,6 +88,6 @@ class AliYunVodController extends Controller
         }
         $videoId = $request['video_id'];
         $url = $this->aliYunVodService->getPlayUrlByVideoId($videoId);
-        return $this->jsonSuccess(['url'=>$url]);
+        return $this->jsonSuccess(['url' => $url]);
     }
 }

+ 20 - 2
app/Service/AliYunVodService.php

@@ -1,8 +1,10 @@
 <?php
+
 namespace App\Service;
 
 
 use Illuminate\Support\Facades\Log;
+use ShaoZeMing\AliVod\SDK\CreateUploadImageRequest;
 use ShaoZeMing\AliVod\SDK\GetPlayInfoRequest;
 use ShaoZeMing\Aliyun\Core\DefaultAcsClient;
 use ShaoZeMing\Aliyun\Core\Profile\DefaultProfile;
@@ -14,9 +16,9 @@ class AliYunVodService
         try {
             $client = $this->initVodClient(config('aliyunvod.vod.AccessKeyID'), config('aliyunvod.vod.AccessKeySecret'));
             $playInfo = $this->getPlayInfo($client, $videoId);
-            if($playInfo && is_object($playInfo)){
+            if ($playInfo && is_object($playInfo)) {
                 return $playInfo->PlayInfoList->PlayInfo[0]->PlayURL;
-            }else{
+            } else {
                 return '';
             }
         } catch (\Exception $e) {
@@ -25,6 +27,22 @@ class AliYunVodService
         }
     }
 
+    public function getImgUploadAuth()
+    {
+        $client = $this->initVodClient(config('aliyunvod.vod.AccessKeyID'), config('aliyunvod.vod.AccessKeySecret'));
+        $imageInfo = $this->createUploadImage($client, 'default', 'jpg');
+        return $imageInfo;
+    }
+
+    public function createUploadImage($client, $imageType, $imageExt)
+    {
+        $request = new CreateUploadImageRequest();
+        $request->setImageType($imageType);
+        $request->setImageExt($imageExt);
+        $request->setAcceptFormat('JSON');
+        return $client->getAcsResponse($request);
+    }
+
     private function initVodClient($accessKeyId, $accessKeySecret)
     {
         $regionId = 'cn-shanghai';  // 点播服务接入区域

+ 1 - 0
routes/api.php

@@ -20,6 +20,7 @@ $api->version('v1', [
     //根据行为标识查询行为
     $api->get('getBehaviorByIdentify', 'BehaviorController@getBehaviorByIdentify');
     $api->get('getVodUploadAuth', 'AliYunVodController@getVodUploadAuth');
+    $api->get('vod/upload/image', 'AliYunVodController@getImgUploadAuth');
     $api->get('getPlayUrlByVideoId', 'AliYunVodController@getPlayUrlByVideoId');
     //获取所有行为
     $api->get('getAllBehavior', 'BehaviorController@getAllBehavior');