AliYunVodController.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  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\V1;
  9. use App\Repositories\FeedRepositories;
  10. use App\Service\AliYunVodService;
  11. use Illuminate\Http\Request;
  12. use Illuminate\Support\Facades\Log;
  13. use Illuminate\Support\Facades\Validator;
  14. use ShaoZeMing\AliVod\SDK\CreateUploadImageRequest;
  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(FeedRepositories $feedRepositories, AliYunVodService $aliYunVodService)
  22. {
  23. $this->feedRepositories = $feedRepositories;
  24. $this->aliYunVodService = $aliYunVodService;
  25. }
  26. /**
  27. * 获取视频上传凭证信息
  28. * @param Request $request
  29. * @return array
  30. * @throws \ShaoZeMing\Aliyun\Core\Exception\ClientException
  31. * @throws \ShaoZeMing\Aliyun\Core\Exception\ServerException
  32. */
  33. public function getVodUploadAuth(Request $request)
  34. {
  35. $request = $request->all();
  36. $validator = Validator::make($request, [
  37. 'title' => 'required',
  38. 'filename' => 'required'
  39. ]);
  40. if ($validator->fails()) {
  41. return jsonError($validator->errors()->first());
  42. }
  43. $instance = new UploadService(config('aliyunvod'));
  44. $title = $request['title'];
  45. $filename = $request['filename'];
  46. $coverUrl = isset($request['cover_url']) ? $request['cover_url'] : '';
  47. try {
  48. $result = $instance->createUploadVideo($title, $filename, '', $coverUrl); //获取视频上传地址和凭证
  49. // $result = $instance->refreshUploadVideo($videoId); //刷新视频上传凭证
  50. // $result = $instance->uploadMediaByURL($url, $title); //url 拉去视屏上传
  51. return $this->jsonSuccess($result);
  52. } catch (\Exception $e) {
  53. return $this->jsonError('获取上传凭证失败' . $e->getMessage());
  54. }
  55. }
  56. /**
  57. * 获取图片上传凭证信息
  58. * @param Request $request
  59. * @return array
  60. * @throws \ShaoZeMing\Aliyun\Core\Exception\ClientException
  61. * @throws \ShaoZeMing\Aliyun\Core\Exception\ServerException
  62. */
  63. public function getImgUploadAuth(Request $request)
  64. {
  65. try {
  66. $imageInfo = $this->aliYunVodService->getImgUploadAuth();
  67. return $this->jsonSuccess($imageInfo);
  68. } catch (\Exception $e) {
  69. return $this->jsonError('获取上传凭证失败' . $e->getMessage());
  70. }
  71. }
  72. public function getPlayUrlByVideoId(Request $request)
  73. {
  74. $request = $request->all();
  75. $validator = Validator::make($request, [
  76. 'video_id' => 'required'
  77. ]);
  78. if ($validator->fails()) {
  79. return jsonError($validator->errors()->first());
  80. }
  81. $videoId = $request['video_id'];
  82. $url = $this->aliYunVodService->getPlayUrlByVideoId($videoId);
  83. return $this->jsonSuccess(['url' => $url]);
  84. }
  85. }