设置频道的第三方推流开关

接口URL

https://api.polyv.net/live/v3/channel/set-thirdpush-enabled

接口说明

(接口调用有频率限制,详细请查看)

1、接口用于设置频道的第三方推流开关
2、接口支持https

返回结果支持格式

JSON

请求方式

POST

请求数限制

TRUE

请求参数

参数名 必选 类型 说明
appId string 从API设置中获取,在直播系统登记的appId
timestamp long 13位当前时间戳
sign string 签名值
channelId int 频道号
thirdPushEnabled string 开关值,Y或N,Y表示开启,N表示关闭

响应成功JSON示例:

{
  "code": 200, 
  "status": "success", 
  "message": "", 
  "data": "success"
}

响应失败JSON示例:

未输入appId

{
    "code": 400,
    "status": "error",
    "message": "appId is required.",
    "data": ""
}

appId不正确

{
    "code": 400,
    "status": "error",
    "message": "application not found.",
    "data": ""
}

时间戳错误

{
    "code": 400,
    "status": "error",
    "message": "invalid timestamp.",
    "data": ""
}

签名错误

{
    "code": 403,
    "status": "error",
    "message": "invalid signature.",
    "data": ""
}

字段说明

参数名 说明
code 响应代码,成功为200,失败为400,签名错误为401,异常错误500
status 成功为success,失败为error
message 错误时为错误提示消息
data 修改成功过时为success

php请求示例

<?php
//引用config.php
include '/srv/http/config.php';

$params = array(
  'appId' => $appId,
  'timestamp' => $timestamp,
  'channelId' => '206204',
  'thirdPushEnabled' => 'Y'  
);

//生成sign
$sign = getSign($params); //详细查看config.php文件的getSign方法
$params['sign'] = $sign;

$url = "http://api.polyv.net/live/v3/channel/set-thirdpush-enabled?".http_build_query($params);

$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 500);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_URL, $url);
$res = curl_exec($curl);
curl_close($curl);

echo $res;
?>

签名规则(config.php文件代码查看)

http://dev.polyv.net/2018/liveproduct/l-api/rule/sign/

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

重制课件参数获取

接口URL

https://api.polyv.net/live/v3/channel/pptRecord/get-setting

接口说明

(接口调用有频率限制,详细请查看)

1、接口用于设置重制课件参数
2、接口支持https

返回结果支持格式

JSON

请求方式

GET、POST

请求数限制

TRUE

请求参数

参数名 必选 类型 说明
appId string 从API设置中获取,在直播系统登记的appId
timestamp long 13位当前毫秒级时间戳
sign string 签名值
channelId int 频道号

响应成功JSON示例:

{
    "code": 200,
    "status": "success",
    "message": "",
    "data": {
        "channelId": 1947328,
        "userId": "cf7f07e096",
        "type": 0,
        "globalSettingEnabled": "N",
        "backgroundImg": "http://liveimages.videocc.net/uploaded/images/2020/12/fu9tqrl4wj.jpg",
        "videoRatio": "0",
        "brandImg": "http://liveimages.videocc.net/uploadimage/20201224/remakeCoursewareBg_1608804635322_7656406.png",
        "createdTime": 1602471455000,
        "lastModified": 1608859631000
    }
}

响应字段说明

参数名 说明
code 状态码,成功为200,签名失败为403,参数错误为400,服务端错误为500
status 成功为success,错误时为error
message 成功为"",错误时为错误描述信息
data 响应数据
data.globalSettingEnabled 是否使用通用设置,Y.是、N.否
data.type 视频布局方式,0.三分屏、1.纯文档
data.videoRatio 摄像头画面比例,0表示16:9、1表示4:3
data.brandImgFile 展示图片
data.backgroundImgFile 背景图片

响应失败JSON示例:

参数错误

{
    "code": 400,
    "status": "error",
    "message": "param validate error",
    "data": ""
}

未输入appId

{
    "code": 400,
    "status": "error",
    "message": "appId is required.",
    "data": ""
}

appId不正确

{
    "code": 400,
    "status": "error",
    "message": "application not found.",
    "data": ""
}

时间戳错误

{
    "code": 400,
    "status": "error",
    "message": "invalid timestamp.",
    "data": ""
}

签名错误

{
    "code": 403,
    "status": "error",
    "message": "invalid signature.",
    "data": ""
}

非法频道号

{
    "code": 403,
    "status": "error",
    "message": "illegal channel id: %s",
    "data": ""
}

java请求示例

public void testAddRecordTask() {
        String url = "https://api.polyv.net/live/v3/channel/pptRecord/get-setting";
        // appId和加密串
        String appId = "xxxxxxx";
        String appSecret = "xxxxxxxxxxxxxxxxxx";
        int channelId = 123;
        Map<String, String> params = new HashMap<>();
        params.put("channelId", String.valueOf(channelId));

        // 调用Polyv的工具类方法设置sign
        PolyvTool.setLiveSign(params, appId, appSecret);
        String content = HttpClientUtil.getInstance()
                .sendHttpPost(url, params);
        System.out.println(content);
}

签名规则及工具文件代码

https://dev.polyv.net/2020/liveproduct/l-api/rule/live-api-java-detail/

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

点播视频CDN刷新和预热

接口URL

https://api.polyv.net/v2/video/refresh-cdn-cache

接口说明

(接口调用有频率限制,详细请查看)

1. 点播视频CDN刷新预热,目前仅支持预热点播zip文件
2. 提交任务后,需 5-10 分钟左右才能生效
3. 同一个用户,每天最多刷新预热 2000 个文件

请求方式

1. 支持POST请求,参数需放在请求体中,并以form表单的形式提交
2. Content-Type: application/x-www-form-urlencoded

请求参数

参数名 必选 类型及范围 说明
userid true string 用户ID
ptime true long 13位当前时间的毫秒级时间戳
sign true string 签名,为40位大写的SHA1值
action true string 执行操作,预热:"push"
fileType true string 文件类型,点播视频zip文件:"zip"
videos true array 视频信息数组,格式为json字符串,每次请求的数量不能超过100个
videos[0].vid true string 视频ID
videos[0].brIndex true int 码率序号,1:流畅,2:高清,3:超清

videos 参数示例

[
    {
    "vid": "e6b23c6f513fbe025b94efdd10d7ab47_e",
    "brIndex": 1
    },
    {
    "vid": "e6b23c6f513fbe025b94efdd10d7ab47_e",
    "brIndex": 2
    },
    {
    "vid": "e6b23c6f513fbe025b94efdd10d7ab47_e",
    "brIndex": 3
    }
]

返回结果

JSON示例

上传成功返回示例
{
    "code": 200,
    "status": "success",
    "message": "success",
    "data": {
        "taskId": "b3ad461ef1df4afc9340427767968a4c"
    }
}

请求失败返回json示例

时间戳过期
{
    "code": 400,
    "status": "error",
    "message": "ptime is too old",
    "data": null
}
签名不正确
{
    "code": 400,
    "status": "error",
    "message": "the sign is not right.",
    "data": null
}
提交的vid中存在不合法值
{
    "code": 400,
    "status": "error",
    "message": "illeagal vid",
    "data": null
}
每次提交不能超过100个文件
{
    "code": 400,
    "status": "error",
    "message": "can't submit more than 100 files",
    "data": null
}
码率不存在
{
    "code": 400,
    "status": "error",
    "message": "bitrate does not exist",
    "data": null
}
每天不能提交超过2000个文件
{
    "code": 400,
    "status": "error",
    "message": "can't submit more than 2000 files one day",
    "data": null
}

字段说明

字段 说明
code 请求返回状态码
status 请求返回状态
message 请求返回信息
data 返回数据
data.taskId 任务ID

java请求示例

public void testRefreshCdnCache() {
        String url = "https://api.polyv.net/v2/video/refresh-cdn-cache";
        String userid = "xxxxxxx";
        String vid = "xxxxxxxxxxxxxxxxxxxx";
        String secretkey = "xxxxxxx";
        String videos = "[{\"vid\": \"e6b23c6f513fbe025b94efdd10d7ab47_e\",\"brIndex\": 1}]";
        long ptime = System.currentTimeMillis();

        Map<String, String> params = new HashMap<>();
        params.put("ptime", String.valueOf(ptime));
        params.put("userid", userid);
        params.put("videos", videos);
        params.put("action", "push");
        params.put("fileType", "zip");
        params.put("sign", getSign(params, secretkey));
        String content = HttpClientUtil.getInstance().sendHttpPost(url, params);
        System.out.println(content);
}

点播API签名规则

https://dev.polyv.net/2020/videoproduct/v-api/v-api-signs/vod-sign/

通用工具类

https://dev.polyv.net/2020/liveproduct/l-api/rule/live-api-java-detail/

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

重置课件参数设置

接口URL

https://api.polyv.net/live/v3/channel/pptRecord/setting

接口说明

(接口调用有频率限制,详细请查看)

1、接口用于设置重制课件参数
2、接口支持https

返回结果支持格式

JSON

请求方式

POST

请求数限制

TRUE

请求参数

参数名 必选 类型 说明
appId string 从API设置中获取,在直播系统登记的appId
timestamp long 13位当前毫秒级时间戳
sign string 签名值
channelId int 频道号
globalSettingEnabled string 是否使用通用设置,Y是,N否
type int 视频布局方式,0.三分屏、1.纯文档
videoRatio int 摄像头画面比例,新版重制有效,默认0,0表示16:9、1表示4:3
brandImgFile File 展示图片,新版重制有效,摄像头画面比例为16:9时尺寸为480X810,摄像头画面比例为4:3时尺寸为480X720,支持jpg和png格式
backgroundImgFile File 背景图片,旧版重制有效,尺寸为1280X720,支持jpg和png格式

响应成功JSON示例:

{
    "code": 200,
    "status": "success",
    "message": "",
    "data": {
        "result": true
    }
}

响应字段说明

参数名 说明
code 状态码,成功为200,签名失败为403,参数错误为400,服务端错误为500
status 成功为success,错误时为error
message 成功为"",错误时为错误描述信息
data 响应数据
data.result 处理结果, true成功

响应失败JSON示例:

参数错误

{
    "code": 400,
    "status": "error",
    "message": "param validate error",
    "data": ""
}

未输入appId

{
    "code": 400,
    "status": "error",
    "message": "appId is required.",
    "data": ""
}

appId不正确

{
    "code": 400,
    "status": "error",
    "message": "application not found.",
    "data": ""
}

时间戳错误

{
    "code": 400,
    "status": "error",
    "message": "invalid timestamp.",
    "data": ""
}

签名错误

{
    "code": 403,
    "status": "error",
    "message": "invalid signature.",
    "data": ""
}

非法频道号

{
    "code": 403,
    "status": "error",
    "message": "illegal channel id: %s",
    "data": ""
}

java请求示例

public void testAddRecordTask() {
        String url = "https://api.polyv.net/live/v3/channel/pptRecord/setting";
        // appId和加密串
        String appId = "xxxxxxx";
        String appSecret = "xxxxxxxxxxxxxxxxxx";
        int channelId = 123;
        Map<String, String> params = new HashMap<>();
        params.put("channelId", String.valueOf(channelId));
        params.put("globalSettingEnabled", "N");
        params.put("type", "0");
        params.put("videoRatio", "0");
        // 调用Polyv的工具类方法设置sign
        PolyvTool.setLiveSign(params, appId, appSecret);
        String content = HttpClientUtil.getInstance()
                .sendHttpPost(url, params);
        System.out.println(content);
}

签名规则及工具文件代码

https://dev.polyv.net/2020/liveproduct/l-api/rule/live-api-java-detail/

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

删除重制课件

接口URL

https://api.polyv.net/live/v3/channel/pptRecord/batch-delete

接口说明

(接口调用有频率限制,详细请查看)

1、接口用于删除重制课件任务, 可批量参数,正在进行重制中的任务不能删除
2、接口支持https

返回结果支持格式

JSON

请求方式

POST

请求数限制

TRUE

请求参数

参数名 必选 类型 说明
appId string 从API设置中获取,在直播系统登记的appId
timestamp long 13位当前毫秒级时间戳
sign string 签名值
channelId int 频道号
taskIds string 任务ID列表,多个任务ID使用","进行分隔

响应成功JSON示例:

{
    "code": 200,
    "status": "success",
    "message": "",
    "data": {
        "result": true
    }
}

响应字段说明

参数名 说明
code 状态码,成功为200,签名失败为403,参数错误为400,服务端错误为500
status 成功为success,错误时为error
message 成功为"",错误时为错误描述信息
data 响应数据
data.result 处理结果, true成功

响应失败JSON示例:

参数错误

{
    "code": 400,
    "status": "error",
    "message": "param validate error",
    "data": ""
}

未输入appId

{
    "code": 400,
    "status": "error",
    "message": "appId is required.",
    "data": ""
}

appId不正确

{
    "code": 400,
    "status": "error",
    "message": "application not found.",
    "data": ""
}

时间戳错误

{
    "code": 400,
    "status": "error",
    "message": "invalid timestamp.",
    "data": ""
}

签名错误

{
    "code": 403,
    "status": "error",
    "message": "invalid signature.",
    "data": ""
}

非法频道号

{
    "code": 403,
    "status": "error",
    "message": "illegal channel id: %s",
    "data": ""
}

java请求示例

public void testAddRecordTask() {
        String url = "https://api.polyv.net/live/v3/channel/pptRecord/batch-delete";
        // appId和加密串
        String appId = "xxxxxxx";
        String appSecret = "xxxxxxxxxxxxxxxxxx";
        String taskIds = "1,2,3";
        int channelId = 123;
        Map<String, String> params = new HashMap<>();
        params.put("taskIds", taskIds);
        params.put("channelId", String.valueOf(channelId));
        // 调用Polyv的工具类方法设置sign
        PolyvTool.setLiveSign(params, appId, appSecret);
        String content = HttpClientUtil.getInstance()
                .sendHttpPost(url, params);
        System.out.println(content);
}

签名规则及工具文件代码

https://dev.polyv.net/2020/liveproduct/l-api/rule/live-api-java-detail/

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

上传指定时间点的视频截图

接口URL

https://api.polyv.net/v2/video/upload-image-in-position

接口说明

(接口调用有频率限制,详细请查看)

上传指定时间点的视频截图, **如果时间点对应的图片已存在,则会返回旧图片路径**

请求方式

POST
Content-Type:multipart/form-data;

请求参数

参数名 必选 类型及范围 说明
userid true string 用户ID
ptime true long 13位当前时间的毫秒级时间戳
sign true string 签名,为40位大写的SHA1值
vid true string 视频vid
position true int 截图位置(视频的时间点),单位:秒
imageFile true file 图片文件,大小不能超过5M,该参数不参与签名

返回结果

JSON示例

上传成功
{
    "code": 200,
    "status": "success",
    "message": "success",
    "data": {
        "vid": "a2dc4f2517dadf1bb312be765089e860_a"
        "position": 10,
        "imageUrl": "http://ab-upload.polyv.net/test/polyv.jpg",
        "exists": 0
    }
}

请求失败返回json示例

时间戳过期
{
    "code": 400,
    "status": "error",
    "message": "ptime is too old",
    "data": null
}
签名不正确
{
    "code": 400,
    "status": "error",
    "message": "the sign is not right.",
    "data": null
}
图片大小不能超过5M
{
    "code": 400,
    "status": "error",
    "message": "ImageFile size can’t more than 5M",
    "data": null
}

字段说明

字段 说明
code 请求返回状态码
status 请求返回状态
message 请求返回信息
data 请求返回数据
imageUrl 图片访问url
vid 视频vid
position 截图位置(视频的时间点),单位:秒
exists 该时间点的图片是否存在,1:已经存在,0:不存在

java请求示例

public void testUploadPositionImage() {
        String url = "https://api.polyv.net/v2/video/upload-image-in-position";
        String userid = "xxxxxxx";
        String vid = "xxxxxxxxxxxxxxxxxxxx";
        int position = 10;
        String secretkey = "xxxxxxx";
        long ptime = System.currentTimeMillis();

        Map<String, String> params = new HashMap<>();
        params.put("position", String.valueOf(position));
        params.put("ptime", String.valueOf(ptime));
        params.put("userid", userid);
        params.put("vid", "xxx");
        params.put("sign", getSign(params, secretkey));
        String content = HttpClientUtil.getInstance().sendHttpPost(url, params);
        System.out.println(content);
}

点播API签名规则

https://dev.polyv.net/2020/videoproduct/v-api/v-api-signs/vod-sign/

通用工具类

https://dev.polyv.net/2020/liveproduct/l-api/rule/live-api-java-detail/

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

分页获取转播子频道关联关系接口

接口URL

http://api.polyv.net/live/v3/channel/transmit/get-transmit-list

接口说明

(接口调用有频率限制,详细请查看)

1、分页获取频道转播子频道关联关系接口
2、支持分页,最大每页1000条数据,最小每页1条数据
3、接口支持https

返回结果支持格式

JSON

请求方式

GET

请求数限制

TRUE

请求参数

参数名 必选 类型 说明
appId string 从API设置中获取,在直播系统登记的appId
timestamp long 当前13位毫秒级时间戳,3分钟内有效
sign string 签名,为32位大写的MD5值
channelId int 频道号
page int 第几页,默认:1(第一页)
pageSize int 每页数据大小,默认每页10条数据,最大每页1000条数据,最小每页1条数据

响应成功JSON示例:

{
    "code": 200,
    "status": "success",
    "message": "",
    "data": {
        "pageSize": 10,
        "pageNumber": 1,
        "totalItems": 3,
        "contents": [
            {
                "name": "888",
                "channelId": 2040976,
                "account": "0012040976",
                "passwd": "xxxxxx"
            },
            {
                "name": "接收转播频道01",
                "channelId": 2041139,
                "account": "0012041139",
                "passwd": "xxxxxx"
            },
            {
                "name": "接收转播频道02",
                "channelId": 2041140,
                "account": "0012041140",
                "passwd": "xxxxxx"
            }
        ],
        "startRow": 1,
        "firstPage": true,
        "lastPage": true,
        "prePageNumber": 1,
        "limit": 3,
        "totalPages": 1,
        "endRow": 3,
        "nextPageNumber": 1,
        "offset": 0
    }
}

响应失败JSON示例:

未输入appId

{
    "code": 400,
    "status": "error",
    "message": "appId is required.",
    "data": ""
}

appId不正确

{
    "code": 400,
    "status": "error",
    "message": "application not found.",
    "data": ""
}

时间戳错误

{
    "code": 400,
    "status": "error",
    "message": "invalid timestamp.",
    "data": ""
}

签名错误

{
    "code": 403,
    "status": "error",
    "message": "invalid signature.",
    "data": ""
}

非法频道

{
    "code": 403,
    "status": "error",
    "message": "illegal channel id: 1779742",
    "data": ""
}

非法参数

{
    "code": 400,
    "status": "error",
    "message": "param is not digit: size",
    "data": ""
}

参数数值超出规定范围

{
    "code": 400,
    "status": "error",
    "message": "number range error",
    "data": ""
}

字段说明

参数名 类型 说明
code int 响应代码,成功为200,失败为400,签名错误为401,异常错误500
status string 成功为success,失败为error
message string 错误时为错误提示消息
data object 响应结果集
pageNumber int 当前的页数
totalItems int 总的条数
contents array 查询的结果列表
contents[0].name string 频道名称
contents[0].channelId int 频道号
contents[0].account string 助教账号
contents[0].passwd string 频道密码
firstPage boolean 是否为第一页,值为:true/false
lastPage boolean 是否为最后一页,值为:true/false
nextPageNumber int 下一页编号
prePageNumber int 上一页编号
totalPages int 总页数
startRow int 当前页第一个数量的位置
endRow int 当前页最后一个数量的位置
limit int 每页数量大小

Java请求示例

public static void main(String[] args) {
        String url = "https://api.polyv.net/live/v3/channel/transmit/get-transmit-list";
        // 用户对应的appId和加密串
        String appId = "xxxxxxxxx";
        String appSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxx";
        Map<String, String> params = new HashMap<>();
        params.put("channelId", "0000000");
        params.put("page", "1");
        params.put("pageSize", "10");
        PolyvTool.setLiveSign(params, appId, appSecret);
        // 调用Polyv的httpClient工具类发送请求
        String content = HttpClientUtil.getInstance()
                .sendHttpGet(url + "?" + PolyvTool.mapJoinNotEncode(params));
        System.out.println(content);
    }

签名规则(PolyvTool.java文件代码查看)

https://dev.polyv.net/2020/liveproduct/l-api/rule/live-api-java-detail/

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

批量创建转播子频道接口

接口URL

http://api.polyv.net/live/v3/channel/transmit/batch-create

接口说明

(接口调用有频率限制,详细请查看)

1、批量创建转播子频道
2、一次性最大支持创建100个子频道,转播子频道上限500个
3、接口支持https

返回结果支持格式

JSON

请求方式

POST

请求数限制

TRUE

请求参数

参数名 必选 类型 说明
appId string 从API设置中获取,在直播系统登记的appId
timestamp long 当前13位毫秒级时间戳,3分钟内有效
sign string 签名,为32位大写的MD5值
channelId int 发起转播频道号

请求体body参数

请求body中的参数为字符串数组,字符串名称为将要创建接收转播的频道名称,最多一次创建支持100个频道
上面的请求参数需要放在query或者表单中,请求体参数需要放在请求体中,不支持放在表单或者query参数

[
    "接收转播频道01",
    "接收转播频道02",
    "接收转播频道03",
    "接收转播频道04"
]

响应成功JSON示例:

{
    "code": 200,
    "status": "success",
    "message": "",
    "data": [
        {
            "channelId": 2041139,
            "name": "接收转播频道01",
            "channelPasswd": "xxxx",
            "authType": "none",
            "streamType": "client",
            "debugEnabled": "N",
            "playBackEnabled": "Y",
            "stream": "ee7fe7fbda1607414643915af33",
            "status": "客户端推流/直播结束",
            "categoryId": 177474,
            "categoryName": "默认分类",
            "isSmallClass": "N",
            "scene": "ppt",
            "createdTime": 1607414644000,
            "appId": null,
            "coverImage": null,
            "type": "receive",
            "startTime": 1598630400000,
            "publisher": "666666",
            "channelLogo": null,
            "splashImg": null,
            "splashEnabled": "Y",
            "pureRtcEnabled": "N",
            "watchTimes": null,
            "roomIds": null
        },
        {
            "channelId": 2041140,
            "name": "接收转播频道02",
            "channelPasswd": "xxxx",
            "authType": "none",
            "streamType": "client",
            "debugEnabled": "N",
            "playBackEnabled": "Y",
            "stream": "ee7fe7fbda160741464391432a6",
            "status": "客户端推流/直播结束",
            "categoryId": 177474,
            "categoryName": "默认分类",
            "isSmallClass": "N",
            "scene": "ppt",
            "createdTime": 1607414644000,
            "appId": null,
            "coverImage": null,
            "type": "receive",
            "startTime": 1598630400000,
            "publisher": "666666",
            "channelLogo": null,
            "splashImg": null,
            "splashEnabled": "Y",
            "pureRtcEnabled": "N",
            "watchTimes": null,
            "roomIds": null
        }
    ]
}

响应失败JSON示例:

未输入appId

{
    "code": 400,
    "status": "error",
    "message": "appId is required.",
    "data": ""
}

appId不正确

{
    "code": 400,
    "status": "error",
    "message": "application not found.",
    "data": ""
}

时间戳错误

{
    "code": 400,
    "status": "error",
    "message": "invalid timestamp.",
    "data": ""
}

签名错误

{
    "code": 403,
    "status": "error",
    "message": "invalid signature.",
    "data": ""
}

非法频道

{
    "code": 403,
    "status": "error",
    "message": "illegal channel id: 1779742",
    "data": ""
}

请求体没有参数

{
    "code": 400,
    "status": "error",
    "message": "request body is not empty or lost params",
    "data": ""
}

请求体数组超过100

{
    "code": 400,
    "status": "error",
    "message": "param length is incorrect:body array size",
    "data": ""
}

转播子频道超过500

{
    "code": 400,
    "status": "error",
    "message": "transmit channel number limit: 500",
    "data": ""
}

未开通转播

{
    "code": 400,
    "status": "error",
    "message": "access forbidden",
    "data": ""
}

频道数超过上限

{
    "code": 400,
    "status": "error",
    "message": "channel count reached the limit",
    "data": ""
}

字段说明

参数名 类型 说明
code int 响应代码,成功为200,失败为400,签名错误为401,异常错误500
status string 成功为success,失败为error
message string 错误时为错误提示消息
data array 响应结果集
data[0].channelId int 频道号
data[0].name string 频道名称
data[0].channelPasswd string 频道密码
data[0].authType string 频道校验类型
data[0].playBackEnabled string 频道是否开启回放,Y:开启,N:关闭
data[0].streamType string 频道推流方式
data[0].debugEnabled string 频道是否开启调试,Y:开启,N:关闭
data[0].stream string 频道流名
data[0].status string 频道状态
data[0].categoryId int 频道所在目录Id
data[0].categoryName string 频道所在目录名称
data[0].isSmallClass string 频道是否为小班课,Y:开启,N:关闭
data[0].scene string 频道场景,ppt:三分屏,alone:活动直播,topclass:大班课,seminar:研讨会
data[0].createdTime long 频道创建时间
data[0].appId string 暂时不返回:null
data[0].coverImage string 频道封面图片
data[0].type string 频道类型,transmit:发起转播,normal:普通的频道,receive:接收转播
data[0].startTime long 频道开始时间
data[0].publisher string 频道主持人
data[0].channelLogo string 暂时不返回:null
data[0].splashImg string 频道引导图图片地址
data[0].splashEnabled string 频道引导图开关,Y:开启,N:关闭
data[0].pureRtcEnabled string 频道无延迟直播开关,Y:开启,N:关闭
data[0].watchTimes string 暂时不返回:null
data[0].roomIds string 频道分房间信息,没有为null

Java请求示例

public static void main(String[] args) {
        String url = "http://api.polyv.net/live/v3/channel/transmit/batch-create";
        // 用户对应的appId和加密串
        String appId = "xxxxxxxxx";
        String appSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxx";
        Map<String, String> params = new HashMap<>();
        params.put("channelId", "0000000");
        PolyvTool.setLiveSign(params, appId, appSecret);
        // 调用Polyv的httpClient工具类发送请求
        String body = "[\"接收转播频道01\",\"接收转播频道02\"]";
        // 调用Polyv的httpClient工具类发送请求
        String content = HttpClientUtil.getInstance()
                .sendHttpPostJson(url + "?" + PolyvTool.mapJoinNotEncode(params), body, null);
        System.out.println(content);
    }

签名规则(PolyvTool.java文件代码查看)

https://dev.polyv.net/2020/liveproduct/l-api/rule/live-api-java-detail/

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

Web播放器快速集成

# 功能介绍
保利威直播提供快速集成的代码,帮助你实现直播播放器的快速调用

快速集成代码

js demo

<div id="player"></div>
<script src="//player.polyv.net/resp/live-h5-player/latest/liveplayer.min.js"></script>
<script>
  var player = polyvLivePlayer({
    wrap: '#player',
    width: 800,
    height: 533,
    uid:'uid',
    vid:'vid'
  });
</script>

默认使用H5播放器,在ie及其他不支持的浏览器下自动切换flash

需要兼容ie10以下的播放器,可以使用下面代码

<script src='https://player.polyv.net/livescript/liveplayer.js'></script>
<div id='player'></div>
<script>
var player = polyvObject('#player').livePlayer({
    width:'600',
    height:'450',
    uid :'uid',
    vid : 'vid'
});
</script>

vue demo

<template>
  <div id="player"></div>
</template>
<script>
export default {
  data() {
    return {
      playerJs: 'https://player.polyv.net/resp/live-h5-player/latest/liveplayer.min.js',
      uid:'uid',
      vid:'vid'
    };
  },

  mounted(){
      this.loadPlayerScript(this.loadPlayer);
  },

  methods: {
    loadPlayerScript(callback) {
      if (!window.polyvLivePlayer) {
        const myScript = document.createElement('script');
        myScript.setAttribute('src', this.playerJs);
        myScript.onload = callback;
        document.body.appendChild(myScript);
      } else {
        callback();
      }
    },

    loadPlayer() {
      const polyvLivePlayer = window.polyvLivePlayer;
      this.player = polyvLivePlayer({
        wrap: '#player',
        width: 800,
        height: 533,
        uid: this.uid ,
        vid: this.vid ,
      });
    }
  },
  destroyed() {
    if (this.player) {
        this.player.destroy();
    }
  }
};
</script>

react demo

import React from 'react';

class Player extends React.Component {
  constructor(props) {
    super(props);
  }

  componentDidMount() {
    if(!window.polyvLivePlayer){
      this.loadScript('https://player.polyv.net/resp/live-h5-player/latest/liveplayer.min.js')
      .then(() =>{
        this.loadPlayer();
      });
    }
  }

  componentWillUnmount() {
    if(this.player){
      this.player.destroy();
    }
  }

  loadPlayer() {
    this.player = window.polyvLivePlayer({
      wrap: '.player',
      width: '100%',
      height: '100%',
      uid: 'uid',
      vid: 'vid',
    });
  }

  loadScript(src) {
    const headElement = document.head || document.getElementsByTagName('head')[0];
    const _importedScript = {};

    return new Promise((resolve, reject) => {
      if (src in _importedScript) {
        resolve();
        return;
      }
      const script = document.createElement('script');
      script.type = 'text/javascript';
      script.onerror = err => {
        headElement.removeChild(script);
        reject(new URIError(`The Script ${src} is no accessible.`));
      }
      script.onload = () => {
        _importedScript[src] = true;
        resolve();
      }
      headElement.appendChild(script);
      script.src = src;
    })
  }

  render() {
    return (
      <div className="wrap">
        <div className="player"></div>
      </div>
    )
  }
}

export default Player;

参数

参数 类型 默认值 说明
wrap string / HTMLElement - 页面上存在需要载入播放器的DOM元素或css选择器
width number / string 100% 播放器的宽度
height number/string auto 播放器的高度
uid string - 用户id,即账号信息中的userId
vid string - 频道id,即频道号
以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

获取频道的皮肤设置信息接口

接口URL

https://api.polyv.net/live/v3/channel/theme/get

接口说明

(接口调用有频率限制,详细请查看)

1、接口用于获取频道的皮肤设置信息
2、接口支持https

返回结果格式

JSON

请求方式

GET

请求参数

参数名 必选 类型 说明
appId string 从API设置中获取,在直播系统登记的appId
timestamp long 13位当前时间戳
sign string 签名值
channelId int 频道号

响应成功JSON示例:

{
"code": 200,
"status": "success",
"message": "",
"data": {
    "pageSkin": "green",
    "watchLayout": "video",
    "watchTemplateType": "new",
    "scene": "ppt",
    "mobileWatchLayout": "normal",
    "globalSettingEnabled": "Y"
  }
}

响应失败JSON示例:

参数错误

{
    "code": 400,
    "status": "error",
    "message": "param validate error",
    "data": 400
}

未输入appId

{
    "code": 400,
    "status": "error",
    "message": "appId is required.",
    "data": ""
}

appId不正确

{
    "code": 400,
    "status": "error",
    "message": "application not found.",
    "data": ""
}

时间戳错误

{
    "code": 400,
    "status": "error",
    "message": "invalid timestamp.",
    "data": ""
}

签名错误

{
    "code": 403,
    "status": "error",
    "message": "invalid signature.",
    "data": ""
}

字段说明

参数名 类型 说明
code int 响应代码,成功为200,失败为400,签名错误为401,异常错误500
status string 成功为success,失败为error
message string 错误时为错误提示消息
data 返回的结果信息
pageSkin 频道的皮肤风格,如:blue green等
scene 频道的直播场景,如:ppt(三分屏) alone等
mobileWatchLayout 频道的移动端观看布局,normal 普通直播 portrait竖屏直播
watchLayout 频道的pc端布局, normal 普通直播 portrait 竖屏直播 ppt三分屏场景下文档为主 video三分屏场景下视频为主
watchTemplateType 频道的观看页模版类型,如:old旧版 new新版等
globalSettingEnabled 是否应用全局设置,Y是,N不是

Java请求示例

public static void test() {
        String url = "https://api.polyv.net/live/v3/channel/theme/get";
        // 用户对应的appId和加密串
        String appId = "xxxxxxxxx";
        String appSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxx";
        Map<String, String> params = new HashMap<>();
        params.put("channelId", 100001);
        PolyvTool.setLiveSign(params, appId, appSecret);
        // 调用Polyv的httpClient工具类发送请求
        HttpClientUtil.getInstance()
                .sendHttpGet(url + "?" + PolyvTool.mapJoinNotEncode(params));
        System.out.println(content);
    }

签名规则(PolyvTool.java文件代码查看)

https://dev.polyv.net/2020/liveproduct/l-api/rule/live-api-java-detail/

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...