开发者指南
快速入门
-
VodClient是与VOD交互的核心,所有VOD操作均需通过VodClient完成。
- 创建媒资。
-
管理媒资。
媒资状态请参见VOD核心概念-媒资状态。
媒资上传成功后,以 mediaId 为索引对媒资进行管理,具体请参见媒资管理。
-
获取播放地址和播放器代码。
媒资上传之后,开发者可以通过接口函数
getPlayableUrl()
和getMediaPlayerCode()
得到 VOD 平台生成的播放地址和Web播放器代码,从而方便地进行播放器集成。
媒资管理
创建媒资
对音视频源文件进行转码、生成缩略图、获取元信息等处理后形成音视频媒资媒资并生成媒资的唯一标识mediaId。
代码示例:
var client = new VodClient(config);
client.createMediaResource("<title>", "<description>", <data>, {
sourceExtension: 'mp4', // 自定义文件扩展名
transcodingPresetGroupName: 'vod.inbuilt.mp4' // 使用自定义 转码模版组 如系统内置的 vod.inbuilt.mp4
})
// Node.js中<data>可以为一个Stream、<pathToFile>;在浏览器中<data>为一个Blob对象
.then(function (response) {
// 上传完成
console.log(response.body.mediaId);
})
.catch(function (error) {
console.log(error);
// 上传错误
//监听progress事件 获取上传进度
client.on('progress', function (evt) {
console.log(evt);
});
查询指定的媒资信息
通过媒资的唯一标识 mediaId 查询指定媒资的详细信息,包括:
媒资信息 | 类型 | 描述 |
---|---|---|
status | Object | 媒资状态,可选值PENDING/RUNNING/FAILED/PUBLISHED/DISABLED/BANNED |
attributes | Object | 媒资属性 |
title | String | 媒资名称,“媒资属性”的子参数 |
description | String | 媒资描述,“媒资属性”的子参数 |
meta | Object | 媒资元数据 |
sizeInBytes | Number | 媒资数据大小,“媒资元数据”的子参数 |
durationInSeconds | Number | 媒资时长,“媒资元数据”的子参数 |
publishTime | String | 媒资发布时间 |
createTime | String | 媒资创建时间 |
代码示例:
var client = new VodClient(config);
client.getMediaResource("<mediaId>")
.then(function (response) {
// 查询成功
console.log(response)
})
.catch(function (error) {
console.log(error);
// 查询错误
});
查询所有媒资
查询特定用户的所有媒资,以列表形式返回。
代码示例:
var client = new VodClient(config);
client.listMediaResources()
.then(function (response) {
// 查询成功
for (var i = 0; i < response.body.media.length; i++) {
console.log(response.body.media[i])
}
})
.catch(function (error) {
console.log(error);
// 查询错误
});
更新媒资的 title 和 description
通过媒资的唯一标识 mediaId 更新指定媒资的属性,包括名称和描述。
代码示例:
var client = new VodClient(config);
client.updateMediaResource("<mediaId>", "<newTitle>", "<newDescription>")
.then(function (response) {
// 查询成功
console.log(response)
})
.catch(function (error) {
console.log(error);
// 查询错误
});
停用指定媒资
通过媒资的唯一标识 mediaId 停用指定媒资,仅对状态为 PUBLISHED
的媒资有效。
音视频媒资在 VOD 整个生命周期中的各种状态称为媒资状态,包含:
媒资状态 | 状态名 | 描述 |
---|---|---|
RUNNING | 转码中 | 系统正在对媒资进行后台处理。媒资上传成功自动进入此状态 |
PUBLISHED | 已发布 | 媒资已完成处理,可以正常播放。系统完成对媒资的后台处理后进入此状态 |
FAILED | 转码失败 | 系统处理媒资时候发生异常 |
PROCESSING | 内部处理中 | 系统正在响应用户对媒资的停用/发布/封禁/解禁请求 |
DISABLED | 已停用 | 媒资已被开发者停用 |
BANNED | 已屏蔽 | 媒资已被系统屏蔽 |
代码示例:
var client = new VodClient(config);
client.stopMediaResource("<mediaId>")
.then(function (response) {
// 查询成功
console.log(response)
})
.catch(function (error) {
console.log(error);
// 查询错误
});
恢复指定媒资
通过媒资的唯一标识 mediaId 恢复指定媒资,仅对状态为 DISABLED
的媒资有效。
代码示例:
var client = new VodClient(config);
client.publishMediaResource("<mediaId>")
.then(function (response) {
// 查询成功
console.log(response)
})
.catch(function (error) {
console.log(error);
// 查询错误
});
删除指定媒资
通过媒资的唯一标识 mediaId 删除指定媒资。删除后,媒资不可见。删除操作不可逆。
代码示例:
var client = new VodClient(config);
client.deleteMediaResource("<mediaId>")
.then(function (response) {
// 查询成功
console.log(response)
})
.catch(function (error) {
console.log(error);
// 查询错误
});
播放器管理
查询媒资播放地址
通过媒资的唯一标识 mediaId 查询指定媒资的可播放文件及媒资封面图的实际路径,用于自定义播放器的开发。
代码示例:
var client = new VodClient(config);
client.getPlayableUrl("<mediaId>")
.then(function (response) {
console.log(response);
});
获取到媒资缩略图(cover)的实际路径后,可通过图片服务(图片样式除外)对媒资封面图进行缩放、裁剪、格式转换、旋转、添加水印等实时处理,URL格式如下所示:
# 例1:将媒资封面图(600×330)缩略成宽度为200,高度按原图比例等比例缩放
http://gcikixy9wpfkpdx3qbb.exp.bcevod.com/mda-gcseezyb93g5hqpp/mda-gcseezyb93g5hqpp.jpg@w_200
# 例2:将媒资封面图(600×330)拉伸到200×150的比例,再等比例缩放至宽200,高150
http://gcikixy9wpfkpdx3qbb.exp.bcevod.com/mda-gcseezyb93g5hqpp/mda-gcseezyb93g5hqpp.jpg@s_1,w_200,h_150
# 例3:将媒资封面图(600×330)等比例缩小330/150倍,再居中裁剪至宽200,高150
http://gcikixy9wpfkpdx3qbb.exp.bcevod.com/mda-gcseezyb93g5hqpp/mda-gcseezyb93g5hqpp.jpg@s_2,w_200,h_150
查询播放器代码
通过媒资的唯一标识 mediaId 及基本外观数据生成基础的播放器代码,便于开发者开发简单的播放器。对于高级定制需求,请根据播放器SDK自定义播放器。
参数说明:
参数 | 描述 |
---|---|
mediaId | 生成播放器代码的媒资ID |
width | 生成播放器的宽度 |
height | 生成播放器的高度 |
autoStart | 生成的播放器是否自动播放该媒资 |
代码示例:
var client = new VodClient(config);
client.getPlayerCode('<mediaId>', <width>, <height>, <auto_start>)
.then(function (response) {
for (var i = 0; i < response.body.codes.length; i++) {
var code = response.body.codes[i];
console.log(code.codeType); // 代码类型,为url、html和flash一种,分别表示独立播放页面、嵌入式HTML代码和嵌入式FLASH代码
console.log(code.sourceCode); // 获取代码
}
});