all(); $validator = Validator::make($request, [ 'title' => 'required', 'filename' => 'required', 'cover_url' => 'url' ]); if ($validator->fails()) { return jsonError($validator->errors()->first()); } $instance = new UploadService(config('aliyunvod')); $title = $request['title']; $filename = $request['filename']; $coverUrl = isset($request['cover_url']) ?: $request['cover_url']; try { $result = $instance->createUploadVideo($title, $filename, '', $coverUrl); //获取视频上传地址和凭证 // $result = $instance->refreshUploadVideo($videoId); //刷新视频上传凭证 // $result = $instance->uploadMediaByURL($url, $title); //url 拉去视屏上传 return $this->jsonSuccess($result); } catch (\Exception $e) { return $this->jsonError('获取上传凭证失败' . $e->getMessage()); } } public function getPlayUrlByVideoId(Request $request) { $request = $request->all(); $validator = Validator::make($request, [ 'video_id' => 'required' ]); if ($validator->fails()) { return jsonError($validator->errors()->first()); } $videoId = $request['video_id']; try { $client = $this->initVodClient(config('aliyunvod.vod.AccessKeyID'), config('aliyunvod.vod.AccessKeySecret')); $playInfo = $this->getPlayInfo($client, $videoId); return $this->jsonSuccess($playInfo); } catch (\Exception $e) { Log::debug('获取视频地址失败:' . $e->getMessage()); return $this->jsonError('获取视频地址失败'); } } private function initVodClient($accessKeyId, $accessKeySecret) { $regionId = 'cn-shanghai'; // 点播服务接入区域 $profile = DefaultProfile::getProfile($regionId, $accessKeyId, $accessKeySecret); return new DefaultAcsClient($profile); } private function getPlayInfo($client, $videoId) { $request = new GetPlayInfoRequest(); $request->setVideoId($videoId); $request->setAcceptFormat('JSON'); $playConfig = ['PlayDomain' => 'http://oss.caihongxingqiu.net/']; $request->setPlayConfig(json_encode($playConfig)); return $client->getAcsResponse($request); } }