deprecatedChannelOperate
1、创建并初始化频道
描述
创建并初始化频道
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/basic/create
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
2、AuthSetting中AuthType不能直接设置白名单观看,需要先创建频道后再设置观看条件;示例
3、AuthSetting中最多只能设置两个观看条件(即一个主要观看条件,一个次要观看条件),次要条件必须有主要条件才生效
4、AuthSetting不能设置两个AuthType一致的
单元测试
@Test
public void testCreateChannelInit() throws Exception, NoSuchAlgorithmException {
LiveChannelInitRequest liveChannelInitRequest = new LiveChannelInitRequest();
LiveChannelInitResponse liveChannelInitResponse = null;
try {
LiveChannelInitRequest.BasicSetting basicSetting = new LiveChannelInitRequest.BasicSetting().setName(
"创建并初始化频道-验证码观看")
.setChannelPasswd(getRandomString(6))
.setAutoPlay(1)
.setPlayerColor("#666666")
.setScene(LiveConstant.SceneType.ALONE.getDesc())
.setCategoryId(340019)
.setMaxViewer(0)
.setStartTime(null)
.setDesc("这是一个描述")
.setPublisher("sadboy主讲")
.setLinkMicLimit(-1)
.setPureRtcEnabled("N")
.setReceiveChannelIds(null)
.setSubAccount("test-dev@qq.com")
.setOnlyOneLiveEnabled("N");
liveChannelInitRequest.setBasicSetting(basicSetting);
//验证码观看
LiveChannelInitRequest.AuthSetting codeAuthSettings = new LiveChannelInitRequest.AuthSetting().setRank(1)
.setAuthType(LiveConstant.AuthType.CODE.getDesc())
.setEnabled("Y")
.setAuthCode("123456")
.setQcodeTips("提示文案")
.setQcodeImg("https://live.polyv.net/static/images/live-header-logo.png");
//收费观看
LiveChannelInitRequest.AuthSetting moneyAuthSettings = new LiveChannelInitRequest.AuthSetting().setRank(2)
.setAuthType(LiveConstant.AuthType.PAY.getDesc())
.setEnabled("Y")
.setPayAuthTips("付费观看")
.setPrice(0.01f)
.setQcodeTips("提示文案")
.setQcodeImg("https://live.polyv.net/static/images/live-header-logo.png");
List<LiveChannelInitRequest.AuthSetting> authSettings = new ArrayList<LiveChannelInitRequest.AuthSetting>();
authSettings.add(codeAuthSettings);
authSettings.add(moneyAuthSettings);
liveChannelInitRequest.setAuthSettings(authSettings);
//回放设置
LiveChannelInitRequest.PlaybackSetting playbackSetting = new LiveChannelInitRequest.PlaybackSetting();
playbackSetting.setGlobalSettingEnabled("N").setPlaybackEnabled("Y").setType("single").setOrigin("record");
liveChannelInitRequest.setPlaybackSetting(playbackSetting);
//设置讲师
LiveChannelInitRequest.Teacher teacher = new LiveChannelInitRequest.Teacher();
teacher.setActor("讲师").setNickname("王老师");
liveChannelInitRequest.setTeacher(teacher);
//设置角色
LiveChannelInitRequest.Roles assistantRole = new LiveChannelInitRequest.Roles();
assistantRole.setNickname("孙助教").setActor("助教").setPasswd(getRandomString(6)).setRole("Assistant");
LiveChannelInitRequest.Roles guestRole = new LiveChannelInitRequest.Roles();
guestRole.setNickname("赵嘉宾").setActor("嘉宾").setPasswd(getRandomString(6)).setRole("Guest");
List<LiveChannelInitRequest.Roles> roles = new ArrayList<>();
roles.add(assistantRole);
roles.add(guestRole);
liveChannelInitRequest.setRoles(roles);
liveChannelInitResponse = new LiveChannelOperateServiceImpl().createChannelInit(liveChannelInitRequest);
Assert.assertNotNull(liveChannelInitResponse);
if (liveChannelInitResponse != null) {
//to do something ......
log.debug("测试创建并初始化频道 验证码观看创建成功{}", JSON.toJSONString(liveChannelInitResponse));
//TODO 此处创建完成后删除了频道,正式使用需删除该语句
deleteChannel(liveChannelInitResponse.getChannelId());
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage(),B
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
单元测试说明
1、请求正确,返回LiveChannelInitResponse对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| basicSetting | true | BasicSetting | 基础设置【详见BasicSetting参数描述】 |
| authSettings | false | Array | 观看条件设置【详见AuthSetting参数描述】 |
| playbackSetting | false | PlaybackSetting | 回放设置【详见PlaybackSetting参数描述】 |
| teacher | false | Teacher | 讲师设置【详见Teacher参数描述】 |
| roles | false | Array | 角色设置【详见Roles参数描述】 |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
BasicSetting参数描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| name | true | String | 频道名称 |
| channelPasswd | false | String | 频道密码,长度不能超过16位,必须同时包含字母和数字 |
| autoPlay | false | Integer | 是否自动播放,0-不自动播放;1-自动播放,默认1 |
| playerColor | false | String | 播放器控制栏颜色,默认:#666666 |
| scene | false | String | 直播场景:alone 活动拍摄;ppt 三分屏;topclass 大班课;seminar:研讨会 |
| categoryId | false | Integer | 新建频道的所属分类,如果不提交,则为默认分类(分类ID可通过“获取直播分类”接口得到) |
| maxViewer | false | Integer | 最大同时在线人数 |
| startTime | false | Date | 直播开始时间 |
| desc | false | String | 直播介绍的内容 |
| publisher | false | String | 主持人 |
| linkMicLimit | false | Integer | 连麦人数,-1=<取值范围<=账号级的连麦人数,-1:表示使用账号默认的连麦人数,最大16人(注:账号级连麦人数需通知平台管理员设置才生效) |
| pureRtcEnabled | false | String | 是否为无延时直播,Y 表示开启,默认为N |
| receive | false | String | 是否为接收转播频道,Y 表示是,不填或者填其他值为发起转播频道(注:需要开启频道转播功能该参数才生效) |
| receiveChannelIds | false | String | 接收转播频道号,多个频道号用半角逗号,隔开,如果receive参数值为Y时,此参数无效(注:需要开启频道转播功能该参数才生效) |
| onlyOneLiveEnabled | false | String | 频道是否只能直播一次,Y是,N否, 默认为N |
| coverImg | false | String | 封面图片地址 |
| splashEnabled | false | String | 引导页开关,默认为N;Y:是,N:否 |
| splashImg | false | String | 引导页图片地址,非保利威域名下的图片需先调用上传图片资源上传 |
| likes | false | String | 点赞数 |
| pageView | false | String | 累积观看数 |
| closeBarrage | false | String | 是否关闭弹幕功能 Y:表示关闭 N:表示开启【对应api文档的closeDanmu字段】 |
| showBarrageInfoEnabled | false | String | 是否显示弹幕信息开关, Y:表示显示 N:表示不显示【对应api文档的showDanmuInfoEnabled字段】 |
| subAccount | false | String | 子账号邮箱,填写时频道会创建在该子账号下(子账号不能被删除或者禁用),暂无法通过接口获取 |
AuthSetting参数描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| rank | true | Integer | 通用参数:主要观看条件为1,次要观看条件为2 |
| enabled | true | String | 通用参数:是否开启,Y为开启,N为关闭 |
| authType | false | String | 通用参数:付费观看-pay,验证码观看-code,白名单观看-phone,登记观看-info,自定义授权观看-custom,外部授权-external,直接授权(独立授权)-direct |
| payAuthTips | false | String | 付费观看参数:欢迎语标题,付费观看时该字段必填 |
| price | false | Float | 付费观看参数:价格,单位为元,付费观看时该字段必填 |
| watchEndTime | false | Date | 付费观看参数:付费有效截止日期。watchEndTime和validTimePeriod只能设置一个,当watchEndTime和validTimePeriod都为空时,表示付费永久有效 |
| validTimePeriod | false | Integer | 付费观看参数:付费有效时长,单位天。当watchEndTime和validTimePeriod都为空时,表示付费永久有效 |
| authCode | false | String | 验证码观看参数:验证码,验证码观看时该字段必填 |
| qcodeTips | false | String | 验证码观看参数:提示文案 |
| qcodeImg | false | String | 验证码观看参数:公众号二维码地址 |
| authTips | false | String | 白名单观看参数:提示文案 |
| infoFields | false | Array | 登记观看参数,登记观看时该字段必填【详见InfoField参数描述】 |
| externalKey | false | String | 外部授权参数:SecretKey,外部授权时该字段必填 |
| externalUri | false | String | 外部授权参数:自定义url,外部授权时该字段必填 |
| externalRedirectUri | false | String | 外部授权参数:跳转地址 |
| customKey | false | String | 自定义授权参数:SecretKey,自定义授权时该字段必填 |
| customUri | false | String | 自定义授权参数:自定义url,自定义授权时该字段必填 |
| directKey | false | String | 直接授权参数:直接授权签名使用SecretKey |
PlaybackSetting参数描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| globalSettingEnabled | false | String | 是否应用通用设置:Y:是; N:否; |
| playbackEnabled | false | String | 回放开关:Y:开启; N:关闭; |
| type | false | String | 回放方式:single:单个回放; list:列表回放; |
| origin | false | String | 回放来源:record:暂存; playback:回放列表; vod:点播列表; |
| videoId | false | String | 单个回放的视频id |
Teacher参数描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| nickname | false | String | 讲师昵称 |
| actor | false | String | 讲师头衔 |
| passwd | false | String | 讲师密码(和basicSetting.channelPasswd说明一致,此处可不设置) |
| avatar | false | String | 头像图片地址 |
Roles参数描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| nickname | false | String | 角色昵称 |
| actor | false | String | 角色头衔 |
| passwd | false | String | 角色密码 |
| avatar | false | String | 头像图片地址 |
| role | false | String | 角色类型:Assistant:助教; Guest-嘉宾; |
InfoField参数描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| name | false | String | 登记信息名,最多为8字符 |
| type | true | String | 登记类型,姓名-name,文本-text,手机号码-mobile,数字-number,下拉选项-option,登记观看时该字段必填 |
| options | false | String | 下拉选项时,下拉的选项值,以英文逗号分割。选项个数上限为8个;选项内容最多为8字符 |
| placeholder | false | String | 文本框输入提示,最多为8字符 |
| sms | false | String | 短信验证开关,Y 开启,N 关闭 |
返回对象描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| channelId | String | 直播频道号 |
| userId | String | POLYV用户ID,和保利威官网一致,获取路径:官网->登录->直播(开发设置) |
| name | String | 直播频道名称 |
| publisher | String | 主持人 |
| description | String | 直播频道描述 |
| url | String | 直播推流地址 |
| stream | String | 直播流名称 |
| logoImage | String | 播放器logo |
| logoOpacity | Float | Logo不透明度,1表示完全不透明 |
| logoPosition | String | Logo位置 tr1:左上 tr:右上 b1:左下 br:右下 |
| logoHref | String | Logo的跳转链接 |
| coverImage | String | 播放前显示的封面图 |
| coverHref | String | 封面图的跳转链接 |
| waitImage | String | 等待推流时的显示图片 |
| waitHref | String | 等待推流时显示图片的跳转链接 |
| cutoffImage | String | 切断流时的显示图片 |
| cutoffHref | String | 切断流时显示图片的跳转链接 |
| advertType | String | 广告类型 |
| advertDuration | String | 广告时长,单位:秒 |
| advertWidth | String | 广告区域宽度 |
| advertHeight | String | 广告区域高度 |
| advertImage | String | 图片广告 |
| advertHref | String | 广告的跳转链接 |
| advertFlvVid | String | 视频广告ID |
| advertFlvUrl | String | 视频广告链接 |
| playerColor | String | 播放器控制栏颜色 |
| autoPlay | Boolean | 自动播放 |
| warmUpFlv | String | 一开始的暖场视频 |
| passwdRestrict | Boolean | 观看密码限制,需要输入观看密码才能播放流 |
| passwdEncrypted | String | 观看密码加密后的密文 |
| isOnlyAudio | String | 仅推音频流:Y:音频模式; N:普通模式; |
| isLowLatency | String | 低延迟,Y-低延迟,N-非低延迟 |
| m3u8Url | String | 直播拉流(播放)m3u8地址 |
| m3u8Url1 | String | 直播拉流(播放)m3u8地址1 |
| m3u8Url2 | String | 直播拉流(播放)m3u8地址2 |
| m3u8Url3 | String | 直播拉流(播放)m3u8地址3 |
| channelLogoImage | String | 频道图标 |
| scene | String | 直播场景 alone:活动拍摄 ppt:三分屏 topclass:大班课 seminar:研讨会 |
| channelViewerPasswd | String | 参与者密码 |
| channelPasswd | String | 频道密码 |
| linkMicLimit | Integer | 连麦人数 -1:使用账号连麦分数 0-16:代表连麦人数 |
| streamType | String | 直播方式 client:客户端推流 pull:拉流 thirdpull:第三方拉流 disk:硬盘推流 audio:音频直播 |
| pureRtcEnabled | String | 是否为无延时直播,默认为N Y:是 N:否 |
| type | String | 频道类型 发起转播:transmit 接收转播:receive 普通频道:normal |
| cnAndEnLiveEnabled | String | 中英文直播间开关 Y:开启 N:关闭 |
| pushEnUrl | String | 英文推流地址 |
| currentTimeMillis | Long | 服务器返回的时间戳(毫秒) |
2、查询频道基本信息
描述
查询频道基本信息
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/basic/get
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testGetChannelBasicInfo() throws Exception, NoSuchAlgorithmException {
LiveChannelBasicInfoRequest liveChannelBasicInfoRequest = new LiveChannelBasicInfoRequest();
LiveChannelBasicInfoResponse liveChannelBasicInfoResponse;
try {
//准备测试数据
String channelId = super.createChannel();
liveChannelBasicInfoRequest.setChannelId(channelId);
liveChannelBasicInfoResponse = new LiveChannelOperateServiceImpl().getChannelBasicInfo(
liveChannelBasicInfoRequest);
Assert.assertNotNull(liveChannelBasicInfoResponse);
if (liveChannelBasicInfoResponse != null) {
//to do something ......
log.debug("查询频道基本信息成功{}", JSON.toJSONString(liveChannelBasicInfoResponse));
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage(),B
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
单元测试说明
1、请求正确,返回LiveChannelBasicInfoResponse对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| channelId | true | String | 频道号 |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| channelId | String | 频道号 |
| name | String | 频道名称 |
| scene | String | 直播场景:alone 活动拍摄;ppt 三分屏;topclass 大班课;seminar:研讨会 |
| newScene | String | 新版后台直播场景,若未定义则取scene undefined:未定义 topclass:大班课 double:双师课(需开通权限) train:企业培训 seminar:研讨会 alone:活动营销 |
| template | String | 新版后台直播模板,若老版频道,该字段为未定义 undefined:未定义 ppt:文档+视频 alone:纯视频(专业) topclass:纯视频(极速) seminar:研讨会 portrait_ppt:文档+视频(竖屏) portrait_alone:视频(竖屏) |
| channelPasswd | String | 频道密码 |
| pureRtcEnabled | String | 无延迟开关 Y:开启 N:关闭 |
| publisher | String | 主持人名称 |
| startTime | Date | 直播开始时间,关闭时为null |
| pageView | Integer | 页面累计观看数 |
| likes | Integer | 观看页点赞数 |
| coverImg | String | 频道图标url |
| splashImg | String | 引导页图片地址 |
| splashEnabled | String | 引导页开关(取值为Y/N) |
| desc | String | 直播介绍 |
| consultingMenuEnabled | String | 咨询提问开关(取值为Y/N) |
| maxViewerRestrict | String | 限制最大在线观看人数开关(取值为Y/N) |
| maxViewer | Integer | 最大在线观看人数 |
| watchStatus | String | 频道的观看页状态,取值为:live(直播中)、end(直播结束)、playback(回放中)、waiting(等待直播) |
| watchStatusText | String | 观看页状态描述,直播中,回放中,已结束,未开始 |
| userCategory | UserCategory | 频道所属分类的信息【详见UserCategory参数描述】 |
| authSettings | Array | 直播观看条件列表【详见AuthSetting参数描述】 |
UserCategory参数描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| categoryId | Integer | 分类ID |
| categoryName | String | 分类名称 |
| userId | String | POLYV用户ID,和保利威官网一致,获取路径:官网->登录->直播(开发设置) |
| rank | Integer | 分类的排序值 |
AuthSetting参数描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| channelId | String | 频道号 |
| userId | String | POLYV用户ID,和保利威官网一致,获取路径:官网->登录->直播(开发设置) |
| rank | Integer | 用于实现一个频道设置两个观看条件,为1或2(1为主要条件,2为次要条件) |
| globalSettingEnabled | String | 是否开启全局设置(Y/N) |
| enabled | String | 是否开启观看条件(Y/N) |
| authType | String | 观看条件类型(1. 无限制 none 2. 验证码观看 code 3. 付费观看 pay 4. 白名单观看 phone 5. 登记观看 info 6. 分享观看 wxshare 7. 自定义授权观看 custom 8. 外部授权观看 external) |
| authTips | String | 白名单观看提示信息 |
| payAuthTips | String | 付费观看提示信息 |
| authCode | String | 验证码观看方式的验证码 |
| qcodeTips | String | 验证码观看方式的二维码提示 |
| qcodeImg | String | 验证码观看方式的二维码图片 |
| price | Float | 付费观看的价格 |
| watchEndTime | Date | 付费观看,截止时间,为null表示:一次付费,永久有效 |
| validTimePeriod | Integer | 付费观看的截止时长(天) |
| customKey | String | 自定义授权观看的key |
| customUri | String | 自定义授权观看的接口地址 |
| externalKey | String | 外部授权观看的key |
| externalUri | String | 外部授权观看的接口地址 |
| externalRedirectUri | String | 外部授权观看,用户直接访问观看页时的跳转地址 |
3、批量创建频道
描述
批量创建频道
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/basic/batch-create
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testCreateChannelList() throws Exception, NoSuchAlgorithmException {
LiveCreateChannelListRequest liveCreateChannelListRequest = new LiveCreateChannelListRequest();
LiveCreateChannelListResponse liveCreateChannelListResponse;
try {
List<LiveCreateChannelListRequest.LiveChannelBasic> channels =
new ArrayList<LiveCreateChannelListRequest.LiveChannelBasic>();
for (int i = 0; i <= 2; i++) {
LiveCreateChannelListRequest.LiveChannelBasic liveChannel =
new LiveCreateChannelListRequest.LiveChannelBasic();
liveChannel.setName("批量创建" + i)
.setChannelPasswd("123456" + i)
.setCourseId("c" + i)
.setAutoPlay(1)
.setPlayerColor("#666666")
.setScene(LiveConstant.SceneType.ALONE.getDesc())
.setSubAccount("test-dev@qq.com")
.setCategoryId(340019);
channels.add(liveChannel);
}
liveCreateChannelListRequest.setChannels(channels);
liveCreateChannelListResponse = new LiveChannelOperateServiceImpl().createChannelList(
liveCreateChannelListRequest);
Assert.assertNotNull(liveCreateChannelListResponse);
if (liveCreateChannelListResponse != null) {
//to do something ......
log.debug("频道批量创建成功{}", JSON.toJSONString(liveCreateChannelListResponse));
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage(),B
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
单元测试说明
1、请求正确,返回LiveCreateChannelListResponse对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| channels | true | Array | 频道列表【详见LiveChannelBasic参数描述】 |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
LiveChannelBasic参数描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| name | true | String | 频道名称 |
| channelPasswd | false | String | 频道密码,长度不能超过16位,必须同时包含字母和数字 |
| courseId | false | String | 课程号 |
| autoPlay | false | Integer | 是否自动播放,0/1,默认1.注意,如果该值为空,则该频道会使用全局的“功能开关设置”。如果非空,则会使用频道的“功能开关设置”。 |
| playerColor | false | String | 播放器控制栏颜色,默认:#666666 |
| scene | false | String | 直播场景,alone 活动拍摄; ppt 三分屏; topclass 大班课;seminar:研讨会 |
| categoryId | false | Integer | 新建频道的所属分类,如果不提交,则为默认分类。分类ID可通过“获取直播分类”接口得到 |
| subAccount | false | String | 子账号邮箱,填写时频道会创建在该子账号下(子账号不能被删除或者禁用),暂无法通过接口获取 |
返回对象描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| channels | Array | 频道基本信息【详见LiveChannelResponse参数描述】 |
LiveChannelResponse参数描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| channelId | String | 直播频道号 |
| userId | String | POLYV用户ID,和保利威官网一致,获取路径:官网->登录->直播(开发设置) |
| name | String | 直播频道名称 |
| publisher | String | 主持人 |
| description | String | 直播频道描述 |
| url | String | 直播推流地址 |
| stream | String | 直播流名称 |
| logoImage | String | 播放器logo |
| logoOpacity | Float | Logo不透明度,1表示完全不透明 |
| logoPosition | String | Logo位置 tr1:左上 tr:右上 b1:左下 br:右下 |
| logoHref | String | Logo的跳转链接 |
| coverImage | String | 播放前显示的封面图 |
| coverHref | String | 封面图的跳转链接 |
| waitImage | String | 等待推流时的显示图片 |
| waitHref | String | 等待推流时显示图片的跳转链接 |
| cutoffImage | String | 切断流时的显示图片 |
| cutoffHref | String | 切断流时显示图片的跳转链接 |
| advertType | String | 广告类型 |
| advertDuration | Integer | 广告时长,单位:秒 |
| advertWidth | Integer | 广告区域宽度 |
| advertHeight | Integer | 广告区域高度 |
| advertImage | String | 图片广告 |
| advertHref | String | 广告的跳转链接 |
| advertFlvVid | String | 视频广告ID |
| advertFlvUrl | String | 视频广告链接 |
| playerColor | String | 播放器控制栏颜色 |
| autoPlay | Boolean | 自动播放,true为自动播放,false为关闭 |
| warmUpFlv | String | 一开始的暖场视频 |
| passwdRestrict | Boolean | 观看密码限制,需要输入观看密码才能播放流 |
| passwdEncrypted | String | 观看密码加密后的密文 |
| isOnlyAudio | String | 仅推音频流,Y-是,N-否 |
| isLowLatency | String | 低延迟,Y-是,N-否 |
| m3u8Url | String | 直播拉流(播放)m3u8地址 |
| m3u8Url1 | String | 直播拉流(播放)m3u8地址1 |
| m3u8Url2 | String | 直播拉流(播放)m3u8地址2 |
| m3u8Url3 | String | 直播拉流(播放)m3u8地址3 |
| currentTimeMillis | Long | 服务器返回的时间戳(毫秒) |
| linkMicLimit | Integer | 连麦人数 |
| channelLogoImage | String | 频道图标 |
| scene | String | 直播场景 alone:活动拍摄 ppt:三分屏 topclass:大班课 seminar:研讨会 |
| channelViewerPasswd | String | 参与者密码 |
| channelPasswd | String | 频道密码 |
| streamType | String | 直播方式 |
| pureRtcEnabled | String | 是否是纯rtc拉流 Y:是 N:否 |
| type | String | 频道类型 发起转播:transmit 接收转播:receive 普通频道:normal |
| cnAndEnLiveEnabled | String | 中英文直播间开关 Y:开启 N:关闭 |
| pushEnUrl | String | 英文推流地址 |
4、创建角色-助教
描述
创建角色-助教
接口地址(仅做说明使用):https://api.polyv.net/live/v2/channelAccount/%s/add
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testCreateSonChannelAssistant() throws Exception, NoSuchAlgorithmException {
LiveCreateSonChannelRequest liveCreateSonChannelRequest = new LiveCreateSonChannelRequest();
LiveCreateSonChannelResponse liveCreateSonChannelResponse;
try {
//准备测试数据
String channelId = super.createChannel();
List<String> sonChannelIds = getDelSonChannelIds();
for (String temp : sonChannelIds) {
deleteSonChannel(temp);
}
liveCreateSonChannelRequest.setChannelId(channelId)
.setRole(null)
.setNickname("sadboy")
.setActor("教授")
.setAvatar("https://www.polyv.net/assets/dist/images/web3.0/c-header/hd-logo.svg?v=2.0");
liveCreateSonChannelResponse = new LiveChannelOperateServiceImpl().createSonChannel(
liveCreateSonChannelRequest);
Assert.assertNotNull(liveCreateSonChannelResponse);
if (liveCreateSonChannelResponse != null) {
//to do something ......
log.debug("创建角色成功{}", JSON.toJSONString(liveCreateSonChannelResponse));
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage(),B
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
单元测试说明
1、请求正确,返回LiveCreateSonChannelResponse对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| channelId | true | String | 频道号 |
| role | false | String | 默认不传为助教,传Guest为嘉宾 |
| nickname | false | String | 创建的助教或嘉宾昵称 |
| actor | false | String | 创建的助教或嘉宾头衔 |
| avatar | false | String | 创建的助教或嘉宾头像 |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| account | String | 助教ID |
| userId | String | POLYV用户ID,和保利威官网一致,获取路径:官网->登录->直播(开发设置) |
| channelId | String | 频道号 |
| passwd | String | 助教密码 |
| nickname | String | 助教名称 |
| stream | String | 助教流名(单独使用无效) |
| status | String | 助教状态(Y/N) |
| createdTime | Date | 创建助教时间 |
| lastModified | Date | 助教最后修改时间 |
| sort | Integer | 频道中所有助教序号 |
| avatar | String | 助教头像 |
| pageTurnEnabled | String | 助教翻页权限(只能一个助教有,Y或N) |
| notifyEnabled | String | 发布公告权限(Y/N) |
| checkinEnabled | String | 开启签到权限(Y/N) |
| voteEnabled | String | 发起投票(Y/N) |
| role | String | 角色 assistant:助教 guest:嘉宾 |
5、设置角色
描述
设置角色
接口地址(仅做说明使用):https://api.polyv.net/live/v2/channelAccount/%s/update
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testUpdateSonChannelInfo() throws Exception, NoSuchAlgorithmException {
LiveUpdateSonChannelInfoRequest liveUpdateSonChannelInfoRequest = new LiveUpdateSonChannelInfoRequest();
Boolean liveUpdateSonChannelInfoResponse;
try {
//准备测试数据
String channelId = super.createChannel();
String sonChannelId = createSonChannel(channelId);
liveUpdateSonChannelInfoRequest.setChannelId(channelId)
.setAccount(sonChannelId)
.setNickname("sadboy")
.setPassword(getRandomString(16))
.setAvatar("https://www.polyv.net/assets/dist/images/web3.0/c-header/hd-logo.svg?v=2.0")
.setActor("教授")
.setPageTurnEnabled("Y")
.setNotifyEnabled("Y");
liveUpdateSonChannelInfoResponse = new LiveChannelOperateServiceImpl().updateSonChannelInfo(
liveUpdateSonChannelInfoRequest);
Assert.assertNotNull(liveUpdateSonChannelInfoResponse);
if (liveUpdateSonChannelInfoResponse) {
//to do something ......
log.debug("设置角色信息成功");
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage(),B
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
单元测试说明
1、请求正确,返回Boolean对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| channelId | true | String | 频道号 |
| account | true | String | 助教/嘉宾账号 |
| nickname | false | String | 昵称 |
| password | false | String | 角色密码 |
| avatar | false | String | 头像 |
| actor | false | String | 角色头衔 |
| pageTurnEnabled | false | String | 助教翻页权限,值为Y或N,Y为开启,N为关闭 |
| notifyEnabled | false | String | 角色公告权限,值为Y或N,Y为开启,N为关闭 |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
true为设置成功,false为设置失败
6、获取讲师信息
描述
获取讲师信息
接口地址(仅做说明使用):https://api.polyv.net/live//v3/channel/account/getTeacher
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testChannelGetTeacher() throws Exception, NoSuchAlgorithmException {
LiveChannelGetTeacherRequest liveChannelGetTeacherRequest = new LiveChannelGetTeacherRequest();
LiveChannelGetTeacherResponse liveChannelGetTeacherResponse;
try {
//准备测试数据
String channelId = super.createChannel();
liveChannelGetTeacherRequest.setChannelId(channelId);
liveChannelGetTeacherResponse = new LiveChannelOperateServiceImpl().getTeacher(liveChannelGetTeacherRequest);
Assert.assertNotNull(liveChannelGetTeacherResponse);
if (liveChannelGetTeacherResponse != null) {
//to do something ......
log.debug("获取讲师信息成功: %s",JSON.toJSONString(liveChannelGetTeacherResponse));
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage(),B
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
}
单元测试说明
1、请求正确,返回LiveChannelGetTeacherResponse对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| channelId | true | String | 频道号 |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| account | String | 讲师id,同频道号 |
| actor | String | 讲师头衔 |
| avatar | String | 讲师头像,例://liveimages.videocc.net/uploaded/images/2023/04/gjps9etdpx.jpg |
| channelId | String | 频道号 |
| nickname | String | 讲师昵称 |
| passwd | String | 讲师登录密码 |
| loginCode | String | 该字段为null |
| role | String | 该字段为null |
