api.video 排字视频上传器
视频 是产品制造者的视频基础设施。 闪电快视频 API 用于在您的应用程序中集成,缩放,并管理点播后低空直播功能.
目录
项目说明
Typescript 库将视频上传到 api.video ,使用前端授权上传符(或常用访问符).
它允许您以两种方式上传视频:
- 标准上传: 一去一去发送整个视频文件
- 渐进上传: 按块发送视频文件, 不需要知道视频文件的最终大小
开始
安装
安装方法 1: 需要js
如果您使用需要js, 您可以将库添加为您的项目依赖性
$ npm install --save @api.video/video-uploader
然后可以在脚本中使用库 :
// standard upload:
var { VideoUploader } = require('@api.video/video-uploader');
var uploader = new VideoUploader({
// ... (see bellow)
});
// progressive upload:
var { ProgressiveUploader } = require('@api.video/video-uploader');
var uploader = new ProgressiveUploader({
// ... (see bellow)
});
安装方法 # 2 : 打字符
如果您使用 Typescript, 您可以将库添加为您的项目依赖性
$ npm install --save @api.video/video-uploader
然后可以在脚本中使用库 :
// standard upload:
import { VideoUploader } from '@api.video/video-uploader'
const uploader = new VideoUploader({
// ... (see bellow)
});
// progressive upload:
import { ProgressiveUploader } from '@api.video/video-uploader'
const uploader = new ProgressiveUploader({
// ... (see bellow)
});
在 Javascript 计划中简单包含
将库包含在您的 HTML 文件里 :
<head>
...
<script src="https://unpkg.com/@api.video/video-uploader" defer></script>
</head>
然后,一旦 window.onload 事件已被三进制, 使用 new VideoUploader()数字 :
...
<form>
<input type="file" id="input" onchange="uploadFile(this.files)">
</form>
<script type="text/javascript">
function uploadFile(files) {
new VideoUploader({
file: files[0],
uploadToken: "YOUR_DELEGATED_TOKEN"
}).upload();
}
</script>
文档 - 标准上传
即兴
选项
上传库使用一个 options 对象。 要提供选项取决于您要认证到 API 的方式: 要么使用授权的上传符( recommanded) , 要么使用通常的访问符.
使用授权的上传符( 建议):
在从客户端上传时,使用授权上传符进行认证是最佳选项. 更多关于授权上传信条 授权上传。 。 。 .
| 选项名称 | 强制性 | 类型 | 说明 |
|---|---|---|---|
| 上传脚本 | 对 | 字符串 | 您的上传标志 |
| 视频 | 没有 | 字符串 | 现有视频的编号 |
| 常见选项(见铃声) |
使用访问符( 损坏 ) :
3⁄4 ̄ ̧漯B: 注意暴露您的访问符客户端会导致巨大的安全问题. 只有你知道自己在做什么,才使用这种方法:).
| 选项名称 | 强制性 | 类型 | 说明 |
|---|---|---|---|
| 访问脚本 | 对 | 字符串 | 您的访问符 |
| 刷新脚本 | 没有 | 字符串 | 您的刷新令牌( 请不要说, 如果您不提供刷新令牌, 您的上传可能因访问令牌寿命为 60 分钟而失败 ) |
| 视频 | 对 | 字符串 | 现有视频的编号 |
| 常见选项(见铃声) |
使用 API 密钥( N)强烈的 沮丧:
3⁄4 ̄ ̧漯B: 注意暴露您的API关键客户端会导致巨大的安全问题. 只有你知道自己在做什么,才使用这种方法:).
| 选项名称 | 强制性 | 类型 | 说明 |
|---|---|---|---|
| API 密钥 | 对 | 字符串 | 您的 api.video API 键 |
| 视频 | 对 | 字符串 | 现有视频的编号 |
| 常见选项(见铃声) |
共同选项
| 选项名称 | 强制性 | 类型 | 说明 |
|---|---|---|---|
| 文件 | 对 | 文件 | 您要上传的文件 |
| 视频Name | 没有 | 字符串 | 视频名称(覆盖正常上传的原始文件名,覆盖渐进上传的默认“文件”名称) |
| 块大小 | 没有 | 编号 | 每个上传块的字节数( 默认: 50MB, min: 5MB, 最大: 128MB) |
| 爱比荷斯 | 没有 | 字符串 | api.video 主机(默认:ws.api.video) |
| 重试 | 没有 | 编号 | aPI 调用失败时重试的次数( 默认: 5) |
| 重试策略 | 没有 | (重复:号码,错误:视频UploadError) QQ 号码QQ 无效 | 函数返回要等待的 ms 数,然后重试失败的上传。 返回无效以停止重试 |
| 最大视频期限 | 没有 | 编号 | 文件允许的最大持续时间( 秒) |
示例
const uploader = new VideoUploader({
file: files[0],
uploadToken: "YOUR_DELEGATED_TOKEN",
chunkSize: 1024*1024*10, // 10MB
retries: 10,
});
方法
upload()
上传方法开始上传 。 它不需要参数。 它返回文件上传后解决的保证 。 如果API呼叫失败超过指定的重试次数,则承诺被拒绝.
如果成功,承诺就包含 video aPI返回的对象.
失败时, 承诺会嵌入由 API 返回的状态代码和错误消息 .
示例
// ... uploader instanciation
uploader.upload()
.then((video) => console.log(video))
.catch((error) => console.log(error.status, error.message));
onProgress()
进程( ) 方法允许您定义一个上传进程倾听器 。 它需要有一个参数的召回函数:关于进步事件. 关于进步的事件包含以下属性:
- 上传Bytes( 数字): 此上传的字节总数
- 总数Bytes( 数目): 文件的总大小
- 块( 数目): 上传块数
- 块字节( 个数): 块的大小
- 当前Chunk (数字): 正在上传的块索引
- 当前ChunkUploaded Bytes (数字): 当前块上传的字节数
cancel()
取消()方法取消上传. 它不需要参数.
示例
// ... uploader instanciation
uploader.onProgress((event) => {
console.log(`total number of bytes uploaded for this upload: ${event.uploadedBytes}.`);
console.log(`total size of the file: ${event.totalBytes}.`);
console.log(`number of upload chunks: ${event.chunksCount} .`);
console.log(`size of a chunk: ${event.chunksBytes}.`);
console.log(`index of the chunk being uploaded: ${event.currentChunk}.`);
console.log(`number of bytes uploaded for the current chunk: ${event.currentChunkUploadedBytes}.`);
});
onPlayable()
使用可播放()方法可以定义视频播放时会调用的收听器 。 它需要有一个参数的回调函数: video aPI返回的对象.
示例
<div id="player-container"></div>
<script>
// ... uploader instanciation
uploader.onPlayable((video) => {
// the video is playable, we can display the player
document.getElementById('player-container').innerHTML = v.assets.iframe;
});
</script>
文档 - 渐进上传
即兴
选项
渐进上传对象使用一个 options 对象。 要提供选项取决于您要认证到 API 的方式: 要么使用授权的上传符( recommanded) , 要么使用通常的访问符.
使用授权的上传符( 建议):
在从客户端上传时,使用授权上传符进行认证是最佳选项. 更多关于授权上传信条 授权上传。 。 。 .
| 选项名称 | 强制性 | 类型 | 说明 |
|---|---|---|---|
| 上传脚本 | 对 | 字符串 | 您的上传标志 |
| 视频 | 没有 | 字符串 | 现有视频的编号 |
| 常见选项(见铃声) |
使用访问符( 损坏 ) :
3⁄4 ̄ ̧漯B: 注意暴露您的访问符客户端会导致巨大的安全问题. 只有你知道自己在做什么,才使用这种方法:).
| 选项名称 | 强制性 | 类型 | 说明 |
|---|---|---|---|
| 访问脚本 | 对 | 字符串 | 您的访问符 |
| 视频 | 对 | 字符串 | 现有视频的编号 |
| 常见选项(见铃声) |
共同选项
| 选项名称 | 强制性 | 类型 | 说明 |
|---|---|---|---|
| 爱比荷斯 | 没有 | 字符串 | api.video 主机(默认:ws.api.video) |
| 重试 | 没有 | 编号 | aPI 调用失败时重试的次数( 默认: 5) |
| 重试策略 | 没有 | (重复:号码,错误:视频UploadError) QQ 号码QQ 无效 | 函数返回要等待的 ms 数,然后重试失败的上传。 返回无效以停止重试 |
| 防止Empty 组件 | 没有 | 布尔 | 如果选中的话, 上传将成功, 即使一个空 Blob 被传递到上传 LastPart () 。 这在某些情况下可能会改变一些性能( 默认: 假) |
| 合并上载前的小部件 | 没有 | 布尔 | 如果错误, 小于 5MB 的部分在上传前不会合并, 导致错误( 默认: 真) |
示例
const uploader = new ProgressiveUploader({
uploadToken: "YOUR_DELEGATED_TOKEN",
retries: 10,
});
方法
uploadPart(file: Blob)
上传方法开始上传 。 它不需要参数。 它返回文件上传后解决的保证 。 如果API呼叫失败超过指定的重试次数,则承诺被拒绝.
如果成功,承诺就包含 video aPI返回的对象.
失败时, 承诺会嵌入由 API 返回的状态代码和错误消息 .
示例
// ... uploader instanciation
uploader.uploadPart(blob)
.catch((error) => console.log(error.status, error.message));
uploadLastPart(file: Blob)
上传方法开始上传 。 它不需要参数。 它返回文件上传后解决的保证 。 如果API呼叫失败超过指定的重试次数,则承诺被拒绝.
如果成功,承诺就包含 video aPI返回的对象.
失败时, 承诺会嵌入由 API 返回的状态代码和错误消息 .
示例
// ... uploader instanciation
uploader.uploadLastPart(blob)
.then((video) => console.log(video))
.catch((error) => console.log(error.status, error.message));
onProgress()
进程( ) 方法允许您定义一个上传进程倾听器 。 它需要有一个参数的召回函数:关于进步事件. 关于进步的事件包含以下属性:
- 上传Bytes( 数字): 此上传的字节总数
- 总数Bytes( 数目): 文件的总大小
- 部分( 数目): 上传部分的索引
示例
// ... uploader instanciation
uploader.onProgress((event) => {
console.log(`total number of bytes uploaded for this upload: ${event.uploadedBytes}.`);
console.log(`total size of the file: ${event.totalBytes}.`);
console.log(`current part: ${event.part}.`);
});
cancel()
取消()方法取消上传. 它不需要参数.
onPlayable()
使用可播放()方法可以定义视频播放时会调用的收听器 。 它需要有一个参数的回调函数: video aPI返回的对象.
示例
<div id="player-container"></div>
<script>
// ... uploader instanciation
uploader.onPlayable((video) => {
// the video is playable, we can display the player
document.getElementById('player-container').innerHTML = v.assets.iframe;
});
</script>
静态包装器
对于管理对象实例不切实际的情况,考虑使用 上传器StaticWrapper 类,它为所有功能提供静态方法等同.
