riccardo993 / mainstreamingtv
该软件包最新版本(v1.0.0)没有提供许可证信息。
主流tv API 的PHP SDK
v1.0.0
2018-01-19 11:03 UTC
Requires
- php: ^7.0
- guzzlehttp/guzzle: ~6.0
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(); }
请注意,搜索不区分大小写