githen/laravel-tencent-vod

基于 Laravel 的腾讯点播上传

v1.0.9 2024-09-12 08:22 UTC

This package is auto-updated.

Last update: 2024-09-12 08:23:15 UTC


README

基于 Laravel 的腾讯点播上传

image image image

安装

composer require githen/laravel-tencent-vod:~v1.0.0

# 迁移配置文件
php artisan vendor:publish --provider="Githen\LaravelTencentVod\VodProvider"

配置文件说明

生成 vod.php 上传配置文件

return [
    /**
    |--------------------------------------------------------------------------
    | 腾讯视频上传配置
    |--------------------------------------------------------------------------
    |  '标识' => [
     *      'sub_appid' => 0, // 子应用id
     *      'class_id' => 0  // 应用的分类 id
     *      'secret_id' => ''  // API授权ID
     *      'secret_key' => ''  // API授权KEY
     *       'procedure_name' =>  // 任务流名称
     * ]
     */
return [
    'global' => [
        'signature_url' => true, // 注册路由,生成签名  请求地址:/jiaoyu/tencent/vod/sign/{标识}
        'auth' => ['auth'], // 路由中间件
        'size' => 50, // MB
        'ext' => [".mp4"],
    ],
    'vod' => [
        'sub_appid' => env('TENCENT_VOD_SUB_APPID', 0),
        'class_id' => env('CLASS_ID', 0),
        'secret_id' => '***',
        'secret_key' => '***',
        'procedure_name' => ''
    ],
];

];

初始化视频上传实例

html 中引入 JS 文件

<script src="/app-assets/js/scripts/qcloud/vod-js-sdk-v6.js'"></script>
<script src="/app-assets/js/scripts/qcloud/vod.upload.js'"></script>

实例化上传类

myVideo = new Vodupload({
        dom:"#upload_file_input",
        // signature:"vod",
        config:'vod',
        signature:function (){return "{{$sign}}"},
        maxFilesize:{!! config('vod.global.size') !!},
        acceptedFiles:"{!! implode(',', config('vod.global.ext')) !!}",
        replace:false, // 当限制为1个时,是否直接替换
        progressInterval:100,
        cacheTime:600,
        callback:function (type, name, info) {
            // info  每种事件传递的数据信息
            
            // 回调会有五个事件
            // type:media name:upload    视频上传完成
            // type:media name:progress  视频上传进度
            // type:cover name:upload    封面图上传完成
            // type:cover name:progress  封面图上传进度
            // type:done name:done       获取视频在腾讯端的基本信息
    
        }
    });

回调参数说明

自动注入的 路由

错误码

支持方法

已封装的 Provider 提供的方法,

// 注入服务的单例 app('jiaoyu.tencent.vod')
// ModifyMediaInfo 支持方法
app('jiaoyu.tencent.vod')->ModifyMediaInfo($label, $request->all());

调用方法 ModifyMediaInfo($label, $params = [])

修改视频基本信息

  • $label:配置标识
  • $params: 请求参数

调用方法 getSignature($label)

获取上传签名

  • $label:配置标识

调用方法 ProcessMediaByProcedure($label, $params = [])

对视频执行转码

  • $label:配置标识
  • $params: 请求参数

调用方法 DescribeTaskDetail($label, $params = [])

获取任务详情

  • $label:配置标识
  • $params: 请求参数

调用方法 send($label, $action, $params = [])

发送请求

  • $label:配置标识
  • $action:腾讯云端的方法
  • $params: 请求参数,具体参考要请求的 $action 的腾讯文档