AliYunVodController.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2019-06-15
  6. * Time: 10:53
  7. */
  8. namespace App\Http\Controllers;
  9. use App\Service\AliYunVodService;
  10. use function GuzzleHttp\Psr7\str;
  11. use Illuminate\Http\Request;
  12. use Illuminate\Http\Response;
  13. use Illuminate\Support\Facades\Log;
  14. use Illuminate\Support\Facades\Validator;
  15. use ShaoZeMing\AliVod\SDK\GetPlayInfoRequest;
  16. use ShaoZeMing\AliVod\Services\UploadService;
  17. use ShaoZeMing\Aliyun\Core\DefaultAcsClient;
  18. use ShaoZeMing\Aliyun\Core\Profile\DefaultProfile;
  19. class AliYunVodController extends Controller
  20. {
  21. public function __construct(AliYunVodService $aliYunVodService)
  22. {
  23. $this->aliYunVodService = $aliYunVodService;
  24. }
  25. /**
  26. * 获取视频上传凭证信息
  27. * @param Request $request
  28. * @return array
  29. * @throws \ShaoZeMing\Aliyun\Core\Exception\ClientException
  30. * @throws \ShaoZeMing\Aliyun\Core\Exception\ServerException
  31. */
  32. public function getVodUploadAuth(Request $request)
  33. {
  34. $request = $request->all();
  35. $validator = Validator::make($request, [
  36. 'title' => 'required',
  37. 'filename' => 'required'
  38. ]);
  39. if ($validator->fails()) {
  40. return $this->response->error($validator->errors()->first(),500);
  41. }
  42. $instance = new UploadService(config('aliyunvod'));
  43. $title = $request['title'];
  44. $filename = $request['filename'];
  45. $coverUrl = isset($request['cover_url']) ?$request['cover_url']:'';
  46. try {
  47. $result = $instance->createUploadVideo($title, $filename, '', $coverUrl); //获取视频上传地址和凭证
  48. $authInfo['UploadAddress'] = $result->UploadAddress;
  49. $authInfo['VideoId'] = $result->VideoId;
  50. $authInfo['RequestId'] = $result->RequestId;
  51. $authInfo['UploadAuth'] = $result->UploadAuth;
  52. return $authInfo;
  53. } catch (\Exception $e) {
  54. return $this->response->error('获取上传凭证失败' . $e->getMessage(),500);
  55. }
  56. }
  57. /**
  58. * //根据videoId获取播放地址
  59. * @param Request $request
  60. * @return array|void
  61. */
  62. public function getPlayUrlByVideoId(Request $request)
  63. {
  64. $request = $request->all();
  65. $validator = Validator::make($request, [
  66. 'video_id' => 'required'
  67. ]);
  68. if ($validator->fails()) {
  69. return $this->response->error($validator->errors()->first(),500);
  70. }
  71. $videoId = $request['video_id'];
  72. $url = $this->aliYunVodService->getPlayUrlByVideoId($videoId);
  73. return ['url'=>$url];
  74. }
  75. }