Deprecated Channel Operate

1、创建并初始化频道

描述

创建并初始化频道
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/basic/create

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

2、AuthSetting中AuthType不能直接设置白名单观看,需要先创建频道后再设置观看条件;示例

3、AuthSetting中最多只能设置两个观看条件(即一个主要观看条件,一个次要观看条件),次要条件必须有主要条件才生效

4、AuthSetting不能设置两个AuthType一致的

5、自定义授权对接文档、外部授权对接文档、直接授权对接文档

单元测试

	@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参数描述

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

频道号

返回对象描述

参数名类型说明

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参数描述

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

创建的助教或嘉宾头像

返回对象描述

参数名类型说明

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为关闭

返回对象描述

true为设置成功,false为设置失败

Last updated