riccardo993/mainstreamingtv

该软件包最新版本(v1.0.0)没有提供许可证信息。

主流tv API 的PHP SDK

v1.0.0 2018-01-19 11:03 UTC

This package is not auto-updated.

Last update: 2024-09-20 21:01:59 UTC


README

主流tv API 的PHP SDK

安装

使用composer安装此软件包: composer require riccardo993/mainstreamingtv

使用此软件包需要PHP 7或更高版本。

用法

为了使用此软件包,您需要提供方的API令牌,并将您的IP地址添加到其白名单中。

上传文件

为了执行文件上传过程,您需要生成一个一次性URL,您的数据将被发送到该URL。

$output = [
    'error' => null,
    'data' => null
];

try{
    $provider = new Mainstreaming('API_TOKEN');
    $path = $provider->upload()->getSecureUploadPath();

    $output['data'] = [
        'url' => $path
    ];
}catch(\Exception $e){
    $output['error'] = $e->getMessage();
    http_response_code(500);
}

header('Content-Type: application/json; charset=utf-8');
echo json_encode($output);

由于API没有提供返回选项,您不应直接在表单操作字段中使用它,而应在ajax请求中使用它。上传完成后,服务器将响应视频ID并将其存储在contentId变量中。

由于一次性URL仅持续几分钟,因此您应在用户即将上传文件时生成它。

使用jQuery File Upload库,您可以通过这种方式完成

$('#fileupload').fileupload({
    submit: function(e, data) {
        var $that = $(this);

        $.post('/video/generate-action', function(result) {
            data.url = result.data.url; // Set the url
            $that.fileupload('send', data); // Manually perform the sending request
        }).fail(function(result) {
            alert(result.responseJSON.error); // The single-use url could not be created
        });

        return false;
    }
}).bind('fileuploaddone', function (e, data) {
    var id = data.result.contentId; // get your unique video ID
});

我们不打算使用分块上传,因为它不起作用

上传过程中的自定义属性

您可以在表单中添加许多字段来设置文件属性。常见的有上传目录和文件名。

使用专用方法获取类别ID。

<input type="hidden" name="title" value="My video" />
<input type="hidden" name="idCategory" value="123456789" />
<input type="file" name="file">

视频状态

您可以检查视频是否准备好观看,或者是否在队列中或正在编码。

$status = $provider->video('VIDEO_ID')->getStatus();

您会得到以下错误之一

  • 排队
  • 编码
  • 准备好
  • 错误

如果您在上传后立即执行视频状态查询,可能会得到一个错误,因为API还没有找到您的视频,所以在执行检查之前请确保。

if($video = $provider->video('VIDEO_ID'))
{
  $status = $video->getStatus();
}

获取上传目录ID

假设您有一个名为My Videos的文件夹,您可以通过一条简单的命令自动获取ID

$id = $provider->categories()->find('my videos')->getId();

如果您不确定文件夹是否存在,您应该在使用其方法之前进行检查,如下所示

if($category = $provider->categories()->find('my videos'))
{
  $id = $category->getId();
}

请注意,搜索不区分大小写