channelState
1、查詢頻道即時推流資訊
描述
查询频道实时推流信息
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/monitor/get-stream-info
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
2、講師未進入直播間或未開啟上課等情況,將拋出"channel status not live"異常
單元測試
@Test
public void testGetChannelStreamInfo() throws Exception, NoSuchAlgorithmException {
LiveChannelStreamInfoRequest liveChannelStreamInfoRequest = new LiveChannelStreamInfoRequest();
LiveChannelStreamInfoResponse liveChannelStreamInfoResponse;
try {
liveChannelStreamInfoRequest.setChannelId(createChannel());
liveChannelStreamInfoResponse = new LiveChannelStateServiceImpl().getChannelStreamInfo(
liveChannelStreamInfoRequest);
Assert.assertNotNull(liveChannelStreamInfoResponse);
if (liveChannelStreamInfoResponse != null) {
//to do something ......
log.debug("批量查询频道直播流状态成功{}", JSON.toJSONString(liveChannelStreamInfoResponse));
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
單元測試說明
1、請求正確,回傳LiveChannelStreamInfoResponse物件,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()設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
回傳物件描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| deployAddress | String | 推送的CDN節點IP,可能會為null |
| inAddress | String | 推流出口ip,可能會為null |
| streamName | String | 流名 |
| fps | String | 推流幀率 |
| lfr | String | 推流丟幀率,可能會為null |
| inBandWidth | String | 推流碼率 |
2、批次查詢頻道直播流狀態
描述
批量查询频道直播流状态
接口地址(仅做说明使用):https://api.polyv.net/live/v2/channels/live-status
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testListChannelLiveStream() throws Exception, NoSuchAlgorithmException {
LiveListChannelStreamStatusRequest liveListChannelStreamStatusRequest =
new LiveListChannelStreamStatusRequest();
LiveListChannelStreamStatusResponse liveListChannelStreamStatusResponse;
try {
//准备测试数据
String channelId0 = super.createChannel();
String channelId1 = getAloneChannelId();
liveListChannelStreamStatusRequest.setChannelIds(String.format("%s,%s", channelId0, channelId1));
liveListChannelStreamStatusResponse = new LiveChannelStateServiceImpl().listChannelLiveStream(
liveListChannelStreamStatusRequest);
Assert.assertNotNull(liveListChannelStreamStatusResponse);
if (liveListChannelStreamStatusResponse != null) {
//to do something ......
log.debug("批量查询频道直播流状态成功{}", JSON.toJSONString(liveListChannelStreamStatusResponse));
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
單元測試說明
1、請求正確,回傳LiveListChannelStreamStatusResponse物件,B端依據此物件處理業務邏輯;
2、請求參數校驗不合格,拋出PloyvSdkException,錯誤訊息見PloyvSdkException.getMessage(),如 [ 輸入參數 [xxx.chat.LivexxxRequest]物件校驗失敗,失敗欄位 [pic不能為空 / msg不能為空] ]
3、伺服器處理異常,拋出PloyvSdkException,錯誤訊息見PloyvSdkException.getMessage(),如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求入參描述
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| channelIds | true | String | 用逗號隔開的頻道號,如:10000,100001 最多20個 |
| appId | false | String | POLYV使用者APP_ID,多帳號呼叫時該參數必填(即呼叫了initMultiAccount()設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | false | String | POLYV使用者APP_SECRET,多帳號呼叫時該參數必填(即呼叫了initMultiAccount()設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
回傳物件描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| channelInfo | Array | 頻道資訊【詳見LiveChannelStreamStatusResponse參數描述】 |
LiveChannelStreamStatusResponse參數描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| channelId | String | 頻道號 |
| status | String | 頻道的直播狀態,字串,值包括:live end |
3、禁止直播頻道推流
描述
禁止直播频道推流
接口地址(仅做说明使用):https://api.polyv.net/live/v2/stream/%s/cutoff
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testCutoffChannelStream() throws Exception, NoSuchAlgorithmException {
LiveCutoffChannelStreamRequest liveCutoffChannelStreamRequest = new LiveCutoffChannelStreamRequest();
Boolean liveCutoffChannelStreamResponse;
try {
//准备测试数据
String channelId = super.createChannel();
liveCutoffChannelStreamRequest.setChannelId(channelId);
liveCutoffChannelStreamResponse = new LiveChannelStateServiceImpl().cutoffChannelStream(
liveCutoffChannelStreamRequest);
Assert.assertNotNull(liveCutoffChannelStreamResponse);
if (liveCutoffChannelStreamResponse) {
//to do something ......
log.debug("禁止直播频道推流成功");
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
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. ]
請求入參描述
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| userId | false | String | POLYV使用者ID,多帳號呼叫時該參數必填(即呼叫了initMultiAccount()設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| channelId | true | String | 頻道號 |
| forbidTime | false | Date | 禁播截至日期,最長禁播90天,不傳預設禁播24小時 |
| appId | false | String | POLYV使用者APP_ID,多帳號呼叫時該參數必填(即呼叫了initMultiAccount()設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | false | String | POLYV使用者APP_SECRET,多帳號呼叫時該參數必填(即呼叫了initMultiAccount()設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
回傳物件描述
true為禁止推流成功,false為失敗
4、恢復直播頻道推流
描述
恢复直播频道推流
接口地址(仅做说明使用):https://api.polyv.net/live/v2/stream/%s/resume
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testResumeChannelStream() throws Exception, NoSuchAlgorithmException {
LiveResumeChannelStreamRequest liveResumeChannelStreamRequest = new LiveResumeChannelStreamRequest();
Boolean liveResumeChannelStreamResponse;
try {
//准备测试数据
String channelId = super.createChannel();
liveResumeChannelStreamRequest.setChannelId(channelId);
liveResumeChannelStreamResponse = new LiveChannelStateServiceImpl().resumeChannelStream(
liveResumeChannelStreamRequest);
Assert.assertNotNull(liveResumeChannelStreamResponse);
if (liveResumeChannelStreamResponse) {
//to do something ......
log.debug("恢复直播频道推流成功");
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
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. ]
請求入參描述
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| userId | false | String | POLYV使用者ID,多帳號呼叫時該參數必填(即呼叫了initMultiAccount()設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| channelId | true | String | 頻道號 |
| appId | false | String | POLYV使用者APP_ID,多帳號呼叫時該參數必填(即呼叫了initMultiAccount()設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | false | String | POLYV使用者APP_SECRET,多帳號呼叫時該參數必填(即呼叫了initMultiAccount()設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
回傳物件描述
true為恢復成功,false為恢復失敗
5、設定頻道流狀態為直播中
描述
设置频道流状态为直播中
接口地址(仅做说明使用):https://api.polyv.net/live/v2/channels/%s/live
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testSetChannelStreamLive() throws Exception, NoSuchAlgorithmException {
LiveChannelStreamLiveRequest liveChannelStreamLiveRequest = new LiveChannelStreamLiveRequest();
Boolean liveChannelStreamLiveResponse;
try {
//准备测试数据
String channelId = super.createChannel();
liveChannelStreamLiveRequest.setChannelId(channelId);
liveChannelStreamLiveResponse = new LiveChannelStateServiceImpl().setChannelStreamLive(
liveChannelStreamLiveRequest);
Assert.assertNotNull(liveChannelStreamLiveResponse);
if (liveChannelStreamLiveResponse) {
//to do something ......
log.debug("测试设置频道流状态为直播中成功");
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
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. ]
請求入參描述
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| userId | false | String | POLYV使用者ID,多帳號呼叫時該參數必填(即呼叫了initMultiAccount()設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| channelId | true | String | 頻道號 |
| appId | false | String | POLYV使用者APP_ID,多帳號呼叫時該參數必填(即呼叫了initMultiAccount()設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | false | String | POLYV使用者APP_SECRET,多帳號呼叫時該參數必填(即呼叫了initMultiAccount()設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
回傳物件描述
true為設定成功,false為設定失敗
6、設定頻道為無直播狀態
描述
设置频道为无直播状态
接口地址(仅做说明使用):https://api.polyv.net/live/v2/channels/%s/end
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testSetChannelStreamEnd() throws Exception, NoSuchAlgorithmException {
LiveChannelStreamEndRequest liveChannelStreamEndRequest = new LiveChannelStreamEndRequest();
Boolean liveChannelStreamEndResponse;
try {
//准备测试数据
String channelId = super.createChannel();
liveChannelStreamEndRequest.setChannelId(channelId);
liveChannelStreamEndResponse = new LiveChannelStateServiceImpl().setChannelStreamEnd(
liveChannelStreamEndRequest);
Assert.assertNotNull(liveChannelStreamEndResponse);
if (liveChannelStreamEndResponse) {
//to do something ......
log.debug("测试设置频道为无直播状态成功");
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
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. ]
請求入參描述
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| userId | false | String | POLYV使用者ID,多帳號呼叫時該參數必填(即呼叫了initMultiAccount()設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| channelId | true | String | 頻道號 |
| appId | false | String | POLYV使用者APP_ID,多帳號呼叫時該參數必填(即呼叫了initMultiAccount()設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | false | String | POLYV使用者APP_SECRET,多帳號呼叫時該參數必填(即呼叫了initMultiAccount()設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
回傳物件描述
true為設定成功,false為設定失敗
7、批次查詢頻道直播狀態
描述
批量查询频道直播状态
接口地址(仅做说明使用):https://api.polyv.net/live/v4/channel/live-status/list
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testGetLiveStatus() throws Exception, NoSuchAlgorithmException {
LiveListChannelStreamStatusV2Request liveListChannelStreamStatusV2Request = new LiveListChannelStreamStatusV2Request();
List<LiveListChannelStreamStatusV2Response> liveListChannelStreamStatusV2Respons;
try {
//准备测试数据
String channelIds = String.format("%s,%s", super.getAloneChannelId(), super.createChannel());
liveListChannelStreamStatusV2Request.setChannelIds(channelIds);
liveListChannelStreamStatusV2Respons = new LiveChannelStateServiceImpl().listChannelLiveStreamV2(
liveListChannelStreamStatusV2Request);
Assert.assertNotNull(liveListChannelStreamStatusV2Respons);
if (liveListChannelStreamStatusV2Respons != null) {
//to do something ......
log.debug("测试批量查询频道直播状态成功:{}", JSON.toJSONString(liveListChannelStreamStatusV2Respons));
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
單元測試說明
1、請求正確,回傳LiveListChannelStreamStatusV2Response物件,B端依據此物件處理業務邏輯;
2、請求參數校驗不合格,拋出PloyvSdkException,錯誤訊息見PloyvSdkException.getMessage(),如 [ 輸入參數 [xxx.chat.LivexxxRequest]物件校驗失敗,失敗欄位 [pic不能為空 / msg不能為空] ]
3、伺服器處理異常,拋出PloyvSdkException,錯誤訊息見PloyvSdkException.getMessage(),如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求入參描述
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| channelIds | true | String | 用英文逗號隔開的頻道號,如:10000,100001 最多20個 |
| appId | false | String | POLYV使用者APP_ID,多帳號呼叫時該參數必填(即呼叫了initMultiAccount()設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | false | String | POLYV使用者APP_SECRET,多帳號呼叫時該參數必填(即呼叫了initMultiAccount()設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
回傳物件描述
回傳物件是List<LiveListChannelStreamStatusV2Response>,LiveListChannelStreamStatusV2Response具體元素內容如下:
| 參數名 | 類型 | 說明 |
|---|---|---|
| channelId | String | 頻道ID |
| liveStatus | String | 直播狀態 unStart:未開始 live:直播中 end:已結束 waiting:等待中 playback:回放中 |
8、批次查詢頻道直播流資訊
描述
批量获取频道直播的实时推流信息
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/monitor/get-streams
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testGetStreams() throws IOException, NoSuchAlgorithmException {
LiveGetStreamsRequest liveGetStreamsRequest = new LiveGetStreamsRequest();
List<LiveGetStreamsResponse> liveGetStreamsResponse;
try {
String channelId = super.createChannel();
liveGetStreamsRequest.setChannelIds(channelId);
liveGetStreamsResponse = new LiveChannelStateServiceImpl().getStreams(liveGetStreamsRequest);
Assert.assertNotNull(liveGetStreamsResponse);
if (liveGetStreamsResponse != null) {
//to do something ......
log.debug("测试批量查询频道直播流信息成功 {}", JSON.toJSONString(liveGetStreamsResponse));
}
} catch (PloyvSdkException e) {
//参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
log.error(e.getMessage(), e);
// 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
throw e;
} catch (Exception e) {
log.error("SDK调用异常", e);
throw e;
}
}
單元測試說明
1、請求正確,回傳LiveGetStreamsResponse物件,B端依據此物件處理業務邏輯;
2、請求參數校驗不合格,拋出PloyvSdkException,錯誤訊息見PloyvSdkException.getMessage(),如 [ 輸入參數 [xxx
