全部产品
云市场
云游戏

Java SDK

更新时间:2020-04-22 16:35:51

准备工作

  1. 在安装和使用阿里云SDK前,确保您已经注册阿里云账号并生成访问密钥(AccessKey)。详情请参考创建AccessKey

  2. 将 SDK添加到项目中
    引入 Java SDK 依赖,通过 maven 依赖的方式将 MultiSearch 的SDK加入到自己的项目中。

    1. <dependency>
    2. <groupId>com.aliyun</groupId>
    3. <artifactId>aliyun-java-sdk-videosearch</artifactId>
    4. <version>1.0.0</version>
    5. </dependency>
    6. <dependency>
    7. <groupId>com.aliyun</groupId>
    8. <artifactId>aliyun-java-sdk-core</artifactId>
    9. <version>4.4.3</version>
    10. </dependency>

完整代码示例

创建视频入库任务

  1. // 设置Region以北京为例,其它Region请按实际情况填写。
  2. String region = "cn-beijing";
  3. // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
  4. String accessKeyId = "<yourAccessKeyId>";
  5. String accessKeySecret = "<yourAccessKeySecret>";
  6. // 创建DefaultAcsClient实例并初始化
  7. DefaultProfile profile = DefaultProfile.getProfile(
  8. region, // 地域ID
  9. accessKeyId, // RAM账号的AccessKey ID
  10. accessKeySecret); // RAM账号Access Key Secret
  11. DefaultProfile.addEndpoint(region, "videosearch", "multisearch.cn-beijing.aliyuncs.com");
  12. IAcsClient client = new DefaultAcsClient(profile);
  13. // 创建API请求并设置参数
  14. AddStorageVideoTaskRequest request = new AddStorageVideoTaskRequest();
  15. // 处理任务的实例id
  16. request.setInstanceId("<yourInstanceId>");
  17. // 视频oss url
  18. request.setVideoUrl("<yourVideoOssUrl>");
  19. // 视频的业务key
  20. request.setVideoId("<yourVideoId>");
  21. // 视频的业务标签
  22. request.setVideoTags("<yourVideoTag>");
  23. // 入库回调地址,此参数为可选
  24. request.setCallbackUrl("<yourCallbackUrl>");
  25. // 发起请求并处理应答或异常
  26. try {
  27. AddStorageVideoTaskResponse response = client.getAcsResponse(request);
  28. // 获取任务id
  29. System.out.println(response.getData().getTaskId());
  30. } catch (ServerException e) {
  31. e.printStackTrace();
  32. } catch (ClientException e) {
  33. System.out.println(e.getRequestId());
  34. System.out.println(e.getErrCode());
  35. System.out.println(e.getErrMsg());
  36. }

创建视频检索任务

  1. // 设置Region以北京为例,其它Region请按实际情况填写。
  2. String region = "cn-beijing";
  3. // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
  4. String accessKeyId = "<yourAccessKeyId>";
  5. String accessKeySecret = "<yourAccessKeySecret>";
  6. // 创建DefaultAcsClient实例并初始化
  7. DefaultProfile profile = DefaultProfile.getProfile(
  8. region, // 地域ID
  9. accessKeyId, // RAM账号的AccessKey ID
  10. accessKeySecret); // RAM账号Access Key Secret
  11. DefaultProfile.addEndpoint(region, "videosearch", "multisearch.cn-beijing.aliyuncs.com");
  12. IAcsClient client = new DefaultAcsClient(profile);
  13. // 创建API请求并设置参数
  14. AddSearchVideoTaskRequest request = new AddSearchVideoTaskRequest();
  15. // 处理任务的实例id
  16. request.setInstanceId("<yourInstanceId>");
  17. // 视频oss url
  18. request.setVideoUrl("<yourVideoOssUrl>");
  19. // 视频的业务key,当StorageType为1(直接入库)、2(覆盖入库)时为必填
  20. request.setVideoId("<yourVideo>");
  21. // 视频的业务标签,当StorageType为1(直接入库)、2(覆盖入库)时生效
  22. request.setVideoTags("<yourVideoTag>");
  23. // 返回视频数量
  24. request.setReturnVideoNumber(10);
  25. // 检索入库类型,取值范围为1(直接入库)、2(覆盖入库)、3(不入库)
  26. request.setStorageType(3);
  27. // 查询标签,对应视频入库时的videoTag
  28. request.setQueryTags("<yourQueryTags>");
  29. // 覆盖入库的阈值,当StorageType为2(覆盖入库)时生效
  30. request.setReplaceStorageThreshold(0.95f);
  31. // 任务处理完成的回调地址,此参数为可选
  32. request.setCallbackUrl("<yourCallbackUrl>");
  33. // 发起请求并处理应答或异常
  34. try {
  35. AddSearchTaskResponse response = client.getAcsResponse(request);
  36. // 获取任务id
  37. System.out.println(response.getData().getTaskId());
  38. } catch (ServerException e) {
  39. e.printStackTrace();
  40. } catch (ClientException e) {
  41. System.out.println(e.getRequestId());
  42. System.out.println(e.getErrCode());
  43. System.out.println(e.getErrMsg());
  44. }

查询任务状态

  1. // 设置Region以北京为例,其它Region请按实际情况填写。
  2. String region = "cn-beijing";
  3. // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
  4. String accessKeyId = "<yourAccessKeyId>";
  5. String accessKeySecret = "<yourAccessKeySecret>";
  6. // 创建DefaultAcsClient实例并初始化
  7. DefaultProfile profile = DefaultProfile.getProfile(
  8. region, // 地域ID
  9. accessKeyId, // RAM账号的AccessKey ID
  10. accessKeySecret); // RAM账号Access Key Secret
  11. DefaultProfile.addEndpoint(region, "videosearch", "multisearch.cn-beijing.aliyuncs.com");
  12. IAcsClient client = new DefaultAcsClient(profile);
  13. // 创建API请求并设置参数
  14. GetTaskStatusRequest request = new GetTaskStatusRequest();
  15. // 实例id
  16. request.setInstanceId("<yourInstanceId>");
  17. // 任务id
  18. request.setTaskId("<yourTaskId>");
  19. // 发起请求并处理应答或异常
  20. try {
  21. GetTaskStatusResponse response = client.getAcsResponse(request);
  22. // 获取任务id
  23. System.out.println(response.getData());
  24. } catch (ServerException e) {
  25. e.printStackTrace();
  26. } catch (ClientException e) {
  27. System.out.println(e.getRequestId());
  28. System.out.println(e.getErrCode());
  29. System.out.println(e.getErrMsg());
  30. }

删除视频

  1. // 设置Region以北京为例,其它Region请按实际情况填写。
  2. String region = "cn-beijing";
  3. // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
  4. String accessKeyId = "<yourAccessKeyId>";
  5. String accessKeySecret = "<yourAccessKeySecret>";
  6. // 创建DefaultAcsClient实例并初始化
  7. DefaultProfile profile = DefaultProfile.getProfile(
  8. region, // 地域ID
  9. accessKeyId, // RAM账号的AccessKey ID
  10. accessKeySecret); // RAM账号Access Key Secret
  11. DefaultProfile.addEndpoint(region, "videosearch", "multisearch.cn-beijing.aliyuncs.com");
  12. IAcsClient client = new DefaultAcsClient(profile);
  13. // 创建API请求并设置参数
  14. AddDeletionVideoTaskRequest request = new AddDeletionVideoTaskRequest();
  15. // 实例id
  16. request.setInstanceId("<yourInstanceId>");
  17. // 视频id
  18. request.setVideoId("<yourVideoId>");
  19. // 发起请求并处理应答或异常
  20. try {
  21. AddDeletionVideoTaskResponse response = client.getAcsResponse(request);
  22. // 删除视频是否成功
  23. System.out.println(response.getData());
  24. } catch (ServerException e){
  25. e.printStackTrace();
  26. }catch (ClientException e) {
  27. System.out.println(e.getRequestId());
  28. System.out.println(e.getErrCode());
  29. System.out.println(e.getErrMsg());
  30. }