通过问答id新增或修改视频问答题目
新增或修改视频问答
图3:视频问答功能(观看效果)
图4:视频问答功能(观看效果)
图5:视频问答功能(观看效果)
单元测试
@Test
public void testCreateOrUpdateVideoExam() throws IOException, NoSuchAlgorithmException {
VodCreateOrUpdateVideoExamRequest vodCreateOrUpdateVideoExamRequest = new VodCreateOrUpdateVideoExamRequest();
VodCreateOrUpdateVideoExamResponse vodCreateOrUpdateVideoExamResponse = null;
try {
List<VodCreateOrUpdateVideoExamRequest.Choices> choices = Arrays.asList(
new VodCreateOrUpdateVideoExamRequest.Choices(0, "萝卜", Boolean.TRUE),
new VodCreateOrUpdateVideoExamRequest.Choices(1, "青菜", Boolean.FALSE));
vodCreateOrUpdateVideoExamRequest.setExamId("17982289508")
.setVideoId("1b448be3234406608b7838c7ef6b597c_1")
.setShowTime(2)
.setQuestion("喜欢萝卜还是青菜")
.setChoices(choices)
.setCanSkip(Boolean.FALSE)
.setExplanationIfRight("回答正确后的解答详情")
.setShowExplanationIfWrong(Boolean.TRUE)
.setExplanationIfWrong("回答错误后的解答详情")
.setBackTime(-1);
vodCreateOrUpdateVideoExamResponse = new VodInfoServiceImpl().createOrUpdateVideoExam(
vodCreateOrUpdateVideoExamRequest);
Assert.assertNotNull(vodCreateOrUpdateVideoExamResponse);
if (vodCreateOrUpdateVideoExamResponse != null) {
log.debug("测试新增或修改视频问答成功,{}", JSON.toJSONString(vodCreateOrUpdateVideoExamResponse));
}
} 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、请求正确,返回VodCreateOrUpdateVideoExamResponse对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.VodxxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
videoId | true | String | 视频ID【对应api文档的vid字段】 |
examId | false | String | 问答ID,为空时会新增一个题目。不为空时会修改已有的问答题目 |
showTime | true | Integer | 问答出现的时间,单位:秒 |
question | true | String | 问答题目描述 |
choices | true | Array | 问答选项json数组,每个题目最多5个选项。【详见Choices参数描述】 |
canSkip | false | Boolean | 是否可跳过,默认值:false |
explanationIfRight | false | String | 回答正确后的解答详情 |
showExplanationIfWrong | false | Boolean | 回答答错误后是否显示解答详情,true:显示;false:不显示;默认为true显示 |
explanationIfWrong | false | String | 回答错误后的解答详情 |
backTime | false | Integer | 答错后回退到第几秒,-1代表不回退,默认为-1 |
Choices参数描述
参数名 | 类型 | 说明 |
---|---|---|
index | Integer | 选项序号,题目实际顺序为按此值的大小排序,不要重复 |
content | String | 选项内容 |
isRight | Boolean | 所有选项中必须至少有一个设置为正确答案,否则接口返回错误。 |
返回对象描述
参数名 | 类型 | 说明 |
---|---|---|
examId | String | 问答ID |
查询单个视频的问答题目
通过视频id查询单个视频的问答题目
@Test
public void testGetVideoExam() throws IOException, NoSuchAlgorithmException {
VodQueryVideoExamRequest vodQueryVideoExamRequest = new VodQueryVideoExamRequest();
VodQueryVideoExamResponse vodQueryVideoExamResponse = null;
try {
vodQueryVideoExamRequest.setVideoId("1b448be3234406608b7838c7ef6b597c_1");
vodQueryVideoExamResponse = new VodInfoServiceImpl().queryVideoExam(vodQueryVideoExamRequest);
Assert.assertNotNull(vodQueryVideoExamResponse);
if (vodQueryVideoExamResponse != null) {
log.debug("测试查询单个视频的问答题目成功,{}", JSON.toJSONString(vodQueryVideoExamResponse));
}
} 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、请求正确,返回VodQueryVideoExamResponse对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.VodxxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
我的文章推荐:
- [视频+图文] 线上研讨会是什么,企业对内对外培训可以用线上研讨会吗?
- [图文] 企业直播对网络带宽有什么要求?
- [图文]OBS如何实现毫秒级超低延时直播
- 直播播放器API(播放器调用方法、参数、接口和事件)
- 企业内训课程视频加密防下载是如何做的?10种思路
- 超低延迟/无延迟直播(PRTC Web SDK移动端)兼容性说明