123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- <?php
- /**
- * Created by PhpStorm.
- * User: Administrator
- * Date: 2019-06-15
- * Time: 10:53
- */
- namespace App\Http\Controllers\V1;
- use App\Repositories\FeedRepositories;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Log;
- use Illuminate\Support\Facades\Validator;
- use ShaoZeMing\AliVod\SDK\GetPlayInfoRequest;
- use ShaoZeMing\AliVod\Services\UploadService;
- use ShaoZeMing\Aliyun\Core\DefaultAcsClient;
- use ShaoZeMing\Aliyun\Core\Profile\DefaultProfile;
- class AliYunVodController extends Controller
- {
- public function __construct(FeedRepositories $feedRepositories)
- {
- $this->feedRepositories = $feedRepositories;
- }
- public function test(){
- $abc = $this->feedRepositories->test();
- var_dump($abc);
- }
- /**
- * 获取视频上传凭证信息
- * @param Request $request
- * @return array
- * @throws \ShaoZeMing\Aliyun\Core\Exception\ClientException
- * @throws \ShaoZeMing\Aliyun\Core\Exception\ServerException
- */
- public function getVodUploadAuth(Request $request)
- {
- $request = $request->all();
- $validator = Validator::make($request, [
- 'title' => 'required',
- 'filename' => 'required'
- ]);
- 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);
- }
- }
|