全部产品
云市场

Java SDK

更新时间:2019-12-04 17:36:15

准备工作

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

  2. 将 SDK添加到项目中

    引入 Java SDK 依赖,通过 Maven 二方库依赖的方式将 MultimediaAI 的SDK加入到自己的项目中。

    1. <dependency>
    2. <groupId>com.aliyun</groupId>
    3. <artifactId>aliyun-java-sdk-multimediaai</artifactId>
    4. <version>1.1.0</version>
    5. </dependency>
    6. <dependency>
    7. <groupId>com.aliyun</groupId>
    8. <artifactId>aliyun-java-sdk-core</artifactId>
    9. <version>[4.3.2,5.0.0)</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. IAcsClient client = new DefaultAcsClient(profile);
  12. // 创建API请求并设置参数
  13. CreateLabelTaskRequest request = new CreateLabelTaskRequest();
  14. request.setVideoUrl("<yourVideoUrl>"); // 需要分析视频url
  15. request.setVideoName("<yourVideoName>"); // 视频名称
  16. request.setApplicationId("<yourApplicationId>"); // 通过控制台获取应用Id
  17. // request.setCallbackUrl("<yourCallbackUrl>"); // 回调通知Url,此参数为可选
  18. // request.setTemplateId(1L); // 自定义模板id,此参数为可选,不传会使用默认模板
  19. // 发起请求并处理应答或异常
  20. CreateLabelTaskResponse response;
  21. try {
  22. response = client.getAcsResponse(request);
  23. // 获取任务id
  24. System.out.println(response.getTaskId());
  25. } catch (ClientException e) {
  26. e.printStackTrace();
  27. }

创建视频静态封面任务

  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. IAcsClient client = new DefaultAcsClient(profile);
  12. // 创建API请求并设置参数
  13. CreateCoverTaskRequest request = new CreateCoverTaskRequest();
  14. request.setVideoUrl("<yourVideoUrl>"); // 需要分析视频url
  15. request.setVideoName("<yourVideoName>"); // 视频名称
  16. request.setApplicationId("<yourApplicationId>"); // 通过控制台获取应用Id
  17. // request.setCallbackUrl("<yourCallbackUrl>"); // 回调通知Url,此参数为可选
  18. // request.setTemplateId(1L); // 自定义模板id,此参数为可选,不传会使用默认模板
  19. // 发起请求并处理应答或异常
  20. CreateLabelTaskResponse response;
  21. try {
  22. response = client.getAcsResponse(request);
  23. // 获取任务id
  24. System.out.println(response.getTaskId());
  25. } catch (ClientException e) {
  26. e.printStackTrace();
  27. }

创建视频动态封面任务

  1. // 设置Region以北京为例,其它Region请按实际情况填写。
  2. String region = "cn-beijing";
  3. // Endpoint以北京为例,其它Region请按实际情况填写。
  4. String endpoint = "multimediaai.cn-beijing.aliyuncs.com";
  5. // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
  6. String accessKeyId = "<yourAccessKeyId>";
  7. String accessKeySecret = "<yourAccessKeySecret>";
  8. // 创建DefaultAcsClient实例并初始化
  9. DefaultProfile profile = DefaultProfile.getProfile(
  10. region, // 地域ID
  11. accessKeyId, // RAM账号的AccessKey ID
  12. accessKeySecret); // RAM账号Access Key Secret
  13. IAcsClient client = new DefaultAcsClient(profile);
  14. // 创建API请求并设置参数
  15. CreateGifTaskRequest request = new CreateGifTaskRequest();
  16. request.setVideoUrl("<yourVideoUrl>"); // 需要分析视频url
  17. request.setVideoName("<yourVideoName>"); // 视频名称
  18. request.setApplicationId("<yourApplicationId>"); // 通过控制台获取应用Id
  19. // request.setCallbackUrl("<yourCallbackUrl>"); // 回调通知Url,此参数为可选
  20. // request.setTemplateId(1L); // 自定义模板id,此参数为可选,不传会使用默认模板
  21. // 发起请求并处理应答或异常
  22. CreateGifTaskResponse response;
  23. try {
  24. response = client.getAcsResponse(request);
  25. // 获取任务id
  26. System.out.println(response.getTaskId());
  27. } catch (ClientException e) {
  28. e.printStackTrace();
  29. }

获取任务处理状态

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

获取任务处理结果

  1. // 设置Region以北京为例,其它Region请按实际情况填写。
  2. String region = "cn-beijing";
  3. // Endpoint以北京为例,其它Region请按实际情况填写。
  4. String endpoint = "multimediaai.cn-beijing.aliyuncs.com";
  5. // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
  6. String accessKeyId = "<yourAccessKeyId>";
  7. String accessKeySecret = "<yourAccessKeySecret>";
  8. // 创建DefaultAcsClient实例并初始化
  9. DefaultProfile profile = DefaultProfile.getProfile(
  10. region, // 地域ID
  11. accessKeyId, // RAM账号的AccessKey ID
  12. accessKeySecret); // RAM账号Access Key Secret
  13. IAcsClient client = new DefaultAcsClient(profile);
  14. // 创建API请求并设置参数
  15. GetTaskStatusRequest request = new GetTaskStatusRequest();
  16. request.setTaskId(<yourTaskId>); // 任务Id
  17. // 发起请求并处理应答或异常
  18. GetTaskStatusResponse response;
  19. try {
  20. response = client.getAcsResponse(request);
  21. // 创建API请求并设置参数
  22. GetTaskResultRequest taskresult = new GetTaskResultRequest();
  23. taskresult.setTaskId(<yourTaskId>); // 任务Id
  24. // 发起请求并处理应答或异常
  25. GetTaskResultResponse result;
  26. result = client.getAcsResponse(taskresult);
  27. // 获取任务结果
  28. if (response.getStatus() == 2) {//状态为2 表示任务执行完成
  29. URL url = new URL(result.getResult().getProcessResultUrl());
  30. BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream(), "utf-8"));
  31. String s = null;
  32. while((s = br.readLine())!=null){
  33. System.out.println(s);//输出分析结果
  34. }
  35. }
  36. } catch (ClientException e) {
  37. e.printStackTrace();
  38. } catch (IOException e) {
  39. e.printStackTrace();
  40. }

创建人脸库

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

创建人脸库人物

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

注册人脸

  1. // 设置Region以北京为例,其它Region请按实际情况填写。
  2. String region = "cn-beijing";
  3. // Endpoint以北京为例,其它Region请按实际情况填写。
  4. String endpoint = "multimediaai.cn-beijing.aliyuncs.com";
  5. // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
  6. String accessKeyId = "<yourAccessKeyId>";
  7. String accessKeySecret = "<yourAccessKeySecret>";
  8. // 创建DefaultAcsClient实例并初始化
  9. DefaultProfile profile = DefaultProfile.getProfile(
  10. region, // 地域ID
  11. accessKeyId, // RAM账号的AccessKey ID
  12. accessKeySecret); // RAM账号Access Key Secret
  13. IAcsClient client = new DefaultAcsClient(profile);
  14. // 创建API请求并设置参数
  15. RegisterFaceImageRequest request = new RegisterFaceImageRequest();
  16. request.setFaceGroupId(1L); // 设置人脸库id
  17. request.setFacePersonId(1L); // 设置人脸库人物id
  18. request.setImageUrl("http://xxx"); // 设置人脸库图片URL
  19. // 发起请求并处理应答或异常
  20. CreateCoverTaskResponse response;
  21. try {
  22. client.getAcsResponse(request);
  23. } catch (ClientException e) {
  24. e.printStackTrace();
  25. }

删除人脸库

  1. // 设置Region以北京为例,其它Region请按实际情况填写。
  2. String region = "cn-beijing";
  3. // Endpoint以北京为例,其它Region请按实际情况填写。
  4. String endpoint = "multimediaai.cn-beijing.aliyuncs.com";
  5. // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
  6. String accessKeyId = "<yourAccessKeyId>";
  7. String accessKeySecret = "<yourAccessKeySecret>";
  8. // 创建DefaultAcsClient实例并初始化
  9. DefaultProfile profile = DefaultProfile.getProfile(
  10. region, // 地域ID
  11. accessKeyId, // RAM账号的AccessKey ID
  12. accessKeySecret); // RAM账号Access Key Secret
  13. IAcsClient client = new DefaultAcsClient(profile);
  14. // 创建API请求并设置参数
  15. DeleteFaceGroupRequest request = new DeleteFaceGroupRequest();
  16. request.setFaceGroupId(1L); // 设置人脸库id
  17. // 发起请求并处理应答或异常
  18. DeleteFaceGroupResponse response;
  19. try {
  20. client.getAcsResponse(request);
  21. } catch (ClientException e) {
  22. e.printStackTrace();
  23. }

删除人脸库人物

  1. // 设置Region以北京为例,其它Region请按实际情况填写。
  2. String region = "cn-beijing";
  3. // Endpoint以北京为例,其它Region请按实际情况填写。
  4. String endpoint = "multimediaai.cn-beijing.aliyuncs.com";
  5. // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
  6. String accessKeyId = "<yourAccessKeyId>";
  7. String accessKeySecret = "<yourAccessKeySecret>";
  8. // 创建DefaultAcsClient实例并初始化
  9. DefaultProfile profile = DefaultProfile.getProfile(
  10. region, // 地域ID
  11. accessKeyId, // RAM账号的AccessKey ID
  12. accessKeySecret); // RAM账号Access Key Secret
  13. IAcsClient client = new DefaultAcsClient(profile);
  14. // 创建API请求并设置参数
  15. DeleteFacePersonRequest request = new DeleteFacePersonRequest();
  16. request.setFaceGroupId(1L); // 设置人脸库id
  17. request.setFacePersonId(1L); // 设置人脸库图片id
  18. // 发起请求并处理应答或异常
  19. DeleteFacePersonResponse response;
  20. try {
  21. client.getAcsResponse(request);
  22. } catch (ClientException e) {
  23. e.printStackTrace();
  24. }

删除人脸库人物图片

  1. // 设置Region以北京为例,其它Region请按实际情况填写。
  2. String region = "cn-beijing";
  3. // Endpoint以北京为例,其它Region请按实际情况填写。
  4. String endpoint = "multimediaai.cn-beijing.aliyuncs.com";
  5. // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
  6. String accessKeyId = "<yourAccessKeyId>";
  7. String accessKeySecret = "<yourAccessKeySecret>";
  8. // 创建DefaultAcsClient实例并初始化
  9. DefaultProfile profile = DefaultProfile.getProfile(
  10. region, // 地域ID
  11. accessKeyId, // RAM账号的AccessKey ID
  12. accessKeySecret); // RAM账号Access Key Secret
  13. IAcsClient client = new DefaultAcsClient(profile);
  14. // 创建API请求并设置参数
  15. DeleteFaceImageRequest request = new DeleteFaceImageRequest();
  16. request.setFaceGroupId(1L); // 设置人脸库id
  17. request.setFacePersonId(1L); // 设置人脸库人物id
  18. request.setFaceImageId(1L); // 设置人脸库人物图片id
  19. // 发起请求并处理应答或异常
  20. DeleteFaceImageRequest response;
  21. try {
  22. client.getAcsResponse(request);
  23. } catch (ClientException e) {
  24. e.printStackTrace();
  25. }

获取人脸库列表

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

获取人脸库人物列表

  1. // 设置Region以北京为例,其它Region请按实际情况填写。
  2. String region = "cn-beijing";
  3. // Endpoint以北京为例,其它Region请按实际情况填写。
  4. String endpoint = "multimediaai.cn-beijing.aliyuncs.com";
  5. // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
  6. String accessKeyId = "<yourAccessKeyId>";
  7. String accessKeySecret = "<yourAccessKeySecret>";
  8. // 创建DefaultAcsClient实例并初始化
  9. DefaultProfile profile = DefaultProfile.getProfile(
  10. region, // 地域ID
  11. accessKeyId, // RAM账号的AccessKey ID
  12. accessKeySecret); // RAM账号Access Key Secret
  13. IAcsClient client = new DefaultAcsClient(profile);
  14. // 创建API请求并设置参数
  15. ListFacePersonsRequest request = new ListFacePersonsRequest();
  16. request.setFaceGroupId(1L); // 设置人脸库id
  17. request.setPageNumber(1); // 设置页码
  18. request.setPageSize(10); // 设置每页条数
  19. // 发起请求并处理应答或异常
  20. ListFacePersonsResponse response;
  21. try {
  22. response = client.getAcsResponse(request);
  23. // 获取人脸库人物数量
  24. System.out.println(response.getTotalCount());
  25. // 获取人脸库人物列表
  26. System.out.println(response.getFacePersons());
  27. } catch (ClientException e) {
  28. e.printStackTrace();
  29. }

获取人脸库人物图片列表

  1. // 设置Region以北京为例,其它Region请按实际情况填写。
  2. String region = "cn-beijing";
  3. // Endpoint以北京为例,其它Region请按实际情况填写。
  4. String endpoint = "multimediaai.cn-beijing.aliyuncs.com";
  5. // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
  6. String accessKeyId = "<yourAccessKeyId>";
  7. String accessKeySecret = "<yourAccessKeySecret>";
  8. // 创建DefaultAcsClient实例并初始化
  9. DefaultProfile profile = DefaultProfile.getProfile(
  10. region, // 地域ID
  11. accessKeyId, // RAM账号的AccessKey ID
  12. accessKeySecret); // RAM账号Access Key Secret
  13. IAcsClient client = new DefaultAcsClient(profile);
  14. // 创建API请求并设置参数
  15. ListFaceImagesRequest request = new ListFaceImagesRequest();
  16. request.setFaceGroupId(1L); // 设置人脸库id
  17. request.setFacePersonId(1L); // 设置人脸库人物id
  18. request.setPageNumber(1); // 设置页码
  19. request.setPageSize(10); // 设置每页条数
  20. // 发起请求并处理应答或异常
  21. ListFaceImagesResponse response;
  22. try {
  23. response = client.getAcsResponse(request);
  24. // 获取人脸库图片数量
  25. System.out.println(response.getTotalCount());
  26. // 获取人脸库图片列表
  27. System.out.println(response.getFaceImages());
  28. } catch (ClientException e) {
  29. e.printStackTrace();
  30. }