音视频点播VOD

    开发者指南

    快速入门

    1. 新建 VodClient

      VodClient是与VOD交互的核心,所有VOD操作均需通过VodClient完成。

    2. 创建媒资。
    3. 管理媒资。

      媒资状态请参见VOD核心概念-媒资状态

      媒资上传成功后,以 mediaId 为索引对媒资进行管理,具体请参见媒资管理

    4. 获取播放地址和播放器代码。

      媒资上传之后,开发者可以通过接口函数getPlayableUrl()getMediaPlayerCode()得到 VOD 平台生成的播放地址和Web播放器代码,从而方便地进行播放器集成。

    媒资管理

    创建媒资

    对音视频源文件进行转码、生成缩略图、获取元信息等处理后形成音视频媒资媒资并生成媒资的唯一标识mediaId。

    代码示例:

    var client = new VodClient(config);
    client.createMediaResource("<title>", "<description>", <data>)
        // 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); // 获取代码
            }
    
        });
    上一篇
    开发环境
    下一篇
    版本更新说明