AliYunVodService.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. namespace App\Service;
  3. use Illuminate\Support\Facades\Log;
  4. use ShaoZeMing\AliVod\SDK\CreateUploadImageRequest;
  5. use ShaoZeMing\AliVod\SDK\GetPlayInfoRequest;
  6. use ShaoZeMing\Aliyun\Core\DefaultAcsClient;
  7. use ShaoZeMing\Aliyun\Core\Profile\DefaultProfile;
  8. class AliYunVodService
  9. {
  10. public function getPlayUrlByVideoId($videoId)
  11. {
  12. try {
  13. $client = $this->initVodClient(config('aliyunvod.vod.AccessKeyID'), config('aliyunvod.vod.AccessKeySecret'));
  14. $playInfo = $this->getPlayInfo($client, $videoId);
  15. if ($playInfo && is_object($playInfo)) {
  16. return $playInfo->PlayInfoList->PlayInfo[0]->PlayURL;
  17. } else {
  18. return '';
  19. }
  20. } catch (\Exception $e) {
  21. Log::debug('获取视频地址失败:' . $e->getMessage());
  22. return '';
  23. }
  24. }
  25. public function getImgUploadAuth()
  26. {
  27. $client = $this->initVodClient(config('aliyunvod.vod.AccessKeyID'), config('aliyunvod.vod.AccessKeySecret'));
  28. $imageInfo = $this->createUploadImage($client, 'default', 'jpg');
  29. return $imageInfo;
  30. }
  31. public function createUploadImage($client, $imageType, $imageExt)
  32. {
  33. $request = new CreateUploadImageRequest();
  34. $request->setImageType($imageType);
  35. $request->setImageExt($imageExt);
  36. $request->setAcceptFormat('JSON');
  37. return $client->getAcsResponse($request);
  38. }
  39. private function initVodClient($accessKeyId, $accessKeySecret)
  40. {
  41. $regionId = 'cn-shanghai'; // 点播服务接入区域
  42. $profile = DefaultProfile::getProfile($regionId, $accessKeyId, $accessKeySecret);
  43. return new DefaultAcsClient($profile);
  44. }
  45. private function getPlayInfo($client, $videoId)
  46. {
  47. $request = new GetPlayInfoRequest();
  48. $request->setVideoId($videoId);
  49. $request->setAcceptFormat('JSON');
  50. $playConfig = ['PlayDomain' => 'http://oss.caihongxingqiu.net/'];
  51. $request->setPlayConfig(json_encode($playConfig));
  52. return $client->getAcsResponse($request);
  53. }
  54. }