视频问答新增或修改视频问答

通过问答id新增或修改视频问答题目

新增或修改视频问答

酷播云视频问答功能

图3:视频问答功能(观看效果)

酷播云视频问答功能

图4:视频问答功能(观看效果)

酷播云视频问答功能

图5:视频问答功能(观看效果)

单元测试

    @Test
    public void testCreateOrUpdateVideoExam() throws IOException, NoSuchAlgorithmException {
        VodCreateOrUpdateVideoExamRequest vodCreateOrUpdateVideoExamRequest = new VodCreateOrUpdateVideoExamRequest();
        VodCreateOrUpdateVideoExamResponse vodCreateOrUpdateVideoExamResponse = null;
        try {
            List 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移动端)兼容性说明

你可能感兴趣的:(点播WebSDK,JAVA,SDK,视频问答,视频答题,视频问答功能代码)