videoPogressBarManagement
1、設定影片打點
描述
通过视频id设置视频的打点信息
接口地址(仅做说明使用):https://api.polyv.net/v2/video/%s/saveKeyFrame
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
2、請求入參 seconds(打點秒數【第 seconds 秒】)必須小於影片長度;
3、請求入參 desc(打點描述)的個數必須與 seconds 的個數相同。
單元測試
@Test
public void testSaveVideoKeyFrame() throws IOException, NoSuchAlgorithmException {
VodSaveVideoKeyFrameRequest vodSaveVideoKeyFrameRequest = new VodSaveVideoKeyFrameRequest();
Boolean vodSaveVideoKeyFrameResponse = null;
try {
vodSaveVideoKeyFrameRequest
//可通过 new VodQueryServiceImpl().queryVideoList()获取
.setVideoId(super.getTestVideoId())
.setDesc("junit测试打点1,junit测试打点2")
.setSeconds("1,5")
.setBtnSettingSwitch("Y")
.setBtnDesc("保利威")
.setBtnHref("http://www.polyv.net");
vodSaveVideoKeyFrameResponse = new VodEditServiceImpl().saveVideoKeyFrame(vodSaveVideoKeyFrameRequest);
Assert.assertTrue(vodSaveVideoKeyFrameResponse);
if (vodSaveVideoKeyFrameResponse) {
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.VodxxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤訊息見 PloyvSdkException.getMessage(),如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求入參描述
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| videoId | true | String | 影片的 ID【對應 API 文件的 vid 欄位】 |
| desc | true | String | 打點描述,若上傳多個打點請用英文逗號分隔 |
| seconds | true | String | 打點秒數【第 seconds 秒】,若上傳多個打點請用英文逗號分隔 |
| btnSettingSwitch | false | String | 按鈕設定開關,Y:開啟;N:關閉;預設關閉【對應 API 文件的 btnsettingswitch 欄位】 |
| btnDesc | false | String | 按鈕描述,按鈕開關開啟時必填,關閉時 btnDesc 不設定【對應 API 文件的 btndesc 欄位】 |
| btnHref | false | String | 按鈕跳轉網址,按鈕開關開啟時必填,關閉時 btnDesc 不設定【對應 API 文件的 btnhref 欄位】 |
回傳物件描述
true 為打點成功,false 為打點失敗
2、查詢單一影片的打點資訊
描述
通过视频id查询单个视频的打点信息
接口地址(仅做说明使用):https://api.polyv.net/v2/video/%s/keyframe/%s
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testListVideoKeyFrame() throws IOException, NoSuchAlgorithmException {
VodListVideoKeyFrameRequest vodListVideoKeyFrameRequest = new VodListVideoKeyFrameRequest();
VodListVideoKeyFrameResponse vodListVideoKeyFrameResponse = null;
try {
vodListVideoKeyFrameRequest
//可通过 new VodQueryServiceImpl().queryVideoList()获取
.setVideoId("1b448be32343357d5c4784d9ffd1bf5c_1");
vodListVideoKeyFrameResponse = new VodInfoServiceImpl().listVideoKeyFrame(vodListVideoKeyFrameRequest);
Assert.assertNotNull(vodListVideoKeyFrameResponse);
if (vodListVideoKeyFrameResponse != null) {
log.debug("测试查询单个视频的打点信息成功,{}", JSON.toJSONString(vodListVideoKeyFrameResponse));
}
} 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、請求正確,回傳 VodListVideoKeyFrameResponse 物件,B 端依據此物件處理業務邏輯;
2、請求參數驗證不合格,拋出 PloyvSdkException,錯誤訊息見 PloyvSdkException.getMessage(),如 [ 輸入參數 [xxx.chat.VodxxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤訊息見 PloyvSdkException.getMessage(),如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求入參描述
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| videoId | true | String | 影片 ID【對應 API 文件的 vid 欄位】 |
回傳物件描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| duration | String | 回傳時長,例:00:00:15 |
| keyFrameList | Array | 打點資訊列表【對應 API 文件的 keyframeList 欄位】【詳見KeyFrame參數描述】 |
KeyFrame參數描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| seconds | Integer | 打點時間點,單位秒 |
| keyContent | String | 打點詳情 |
3、刪除影片打點資訊
描述
通过视频id与时间点删除视频的打点信息
接口地址(仅做说明使用):https://api.polyv.net/v2/video/delete-chapter-marker
呼叫限制
1、介面呼叫有頻率限制,詳細請查看,呼叫常見異常,詳細請查看
單元測試
@Test
public void testDeleteVideoFrame() throws IOException, NoSuchAlgorithmException {
VodDeleteVideoFrameRequest vodDeleteVideoFrameRequest = new VodDeleteVideoFrameRequest();
Boolean vodDeleteVideoFrameResponse = null;
try {
vodDeleteVideoFrameRequest.setVideoId(super.getTestVideoId()).setTimePoints("24,120");
vodDeleteVideoFrameResponse = new VodEditServiceImpl().deleteVideoFrame(vodDeleteVideoFrameRequest);
Assert.assertTrue(vodDeleteVideoFrameResponse);
if (vodDeleteVideoFrameResponse) {
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.VodxxxRequest] 物件驗證失敗,失敗欄位 [pic 不能為空 / msg 不能為空] ]
3、伺服器處理異常,拋出 PloyvSdkException,錯誤訊息見 PloyvSdkException.getMessage(),如 [ 保利威請求回傳資料錯誤,請求流水號:66e7ad29fd04425a84c2b2b562d2025b,錯誤原因: invalid signature. ]
請求入參描述
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| videoId | true | String | 影片 id【對應 API 文件的 vid 欄位】 |
| timePoints | false | String | 時間點,單位:秒,多個以英文逗號分隔,如“1, 2”,若不傳則刪除影片的所有打點資訊 |
回傳物件描述
true 為刪除成功,false 為刪除失敗
