AliYunVodController.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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\GetPlayInfoRequest;
  15. use ShaoZeMing\AliVod\Services\UploadService;
  16. use ShaoZeMing\Aliyun\Core\DefaultAcsClient;
  17. use ShaoZeMing\Aliyun\Core\Profile\DefaultProfile;
  18. class AliYunVodController extends Controller
  19. {
  20. public function __construct(FeedRepositories $feedRepositories,AliYunVodService $aliYunVodService)
  21. {
  22. $this->feedRepositories = $feedRepositories;
  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 jsonError($validator->errors()->first());
  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. // $result = $instance->refreshUploadVideo($videoId); //刷新视频上传凭证
  49. // $result = $instance->uploadMediaByURL($url, $title); //url 拉去视屏上传
  50. return $this->jsonSuccess($result);
  51. } catch (\Exception $e) {
  52. return $this->jsonError('获取上传凭证失败' . $e->getMessage());
  53. }
  54. }
  55. public function getPlayUrlByVideoId(Request $request)
  56. {
  57. $request = $request->all();
  58. $validator = Validator::make($request, [
  59. 'video_id' => 'required'
  60. ]);
  61. if ($validator->fails()) {
  62. return jsonError($validator->errors()->first());
  63. }
  64. $videoId = $request['video_id'];
  65. $url = $this->aliYunVodService->getPlayUrlByVideoId($videoId);
  66. return $this->jsonSuccess(['url'=>$url]);
  67. }
  68. }