From b95a32c9fdf553c0b60b20a2b05468066faa53d5 Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Sat, 15 Mar 2025 14:43:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../text/ARecognizeVideoCharacterHandle.java | 8 +-- .../text/ARecognizeVideoCharacterRequest.java | 14 ++-- .../RecognizeVideoCharacterController.java | 65 +++++++++++++++++++ .../video/RecognizeVideoCharacterReq.java | 26 ++++++++ .../video/RecognizeVideoCharacterResp.java | 35 ++++++++++ .../RecognizeVideoCharacterTextResp.java | 14 ++++ 6 files changed, 152 insertions(+), 10 deletions(-) create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/certificate/video/RecognizeVideoCharacterController.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/request/video/RecognizeVideoCharacterReq.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/resp/video/RecognizeVideoCharacterResp.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/resp/video/RecognizeVideoCharacterTextResp.java diff --git a/api-third/src/main/java/com/heyu/api/alibaba/handle/common/text/ARecognizeVideoCharacterHandle.java b/api-third/src/main/java/com/heyu/api/alibaba/handle/common/text/ARecognizeVideoCharacterHandle.java index 748d608..0531c4a 100644 --- a/api-third/src/main/java/com/heyu/api/alibaba/handle/common/text/ARecognizeVideoCharacterHandle.java +++ b/api-third/src/main/java/com/heyu/api/alibaba/handle/common/text/ARecognizeVideoCharacterHandle.java @@ -27,17 +27,15 @@ public class ARecognizeVideoCharacterHandle extends AlibabaBaseHandle resp = new ArrayList<>(); + ARecognizeVideoCharacterRequest aRecognizeVideoCharacterRequest = new ARecognizeVideoCharacterRequest(); + + aRecognizeVideoCharacterRequest.setImageBase64(request.getVideoBase64()); + aRecognizeVideoCharacterRequest.setImageUrl(request.getVideoURL()); + ApiR aR = arRecognizeVideoCharacterHandle.handle(aRecognizeVideoCharacterRequest); + if (aR.isSuccess() && isSuccessStatusCode(aR.getData().getStatusCode())) { + RecognizeVideoCharacterResponseBody.RecognizeVideoCharacterResponseBodyData responseBodyData = aR.getData().getBody().getData(); + List framesList = responseBodyData.getFrames(); + for (RecognizeVideoCharacterResponseBody.RecognizeVideoCharacterResponseBodyDataFrames frames : framesList) { + RecognizeVideoCharacterResp recognizeVideoCharacterResp = new RecognizeVideoCharacterResp(); + recognizeVideoCharacterResp.setTimestamp(frames.getTimestamp()); + List textResps = new ArrayList<>(); + for (RecognizeVideoCharacterResponseBody.RecognizeVideoCharacterResponseBodyDataFramesElements element : frames.getElements()) { + RecognizeVideoCharacterTextResp recognizeVideoCharacterTextResp = new RecognizeVideoCharacterTextResp(); + recognizeVideoCharacterTextResp.setText(element.getText()); + textResps.add(recognizeVideoCharacterTextResp); + } + recognizeVideoCharacterResp.setRecognizeVideoCharacterTextRespList(textResps); + + resp.add(recognizeVideoCharacterResp); + } + R.ok().setData(resp); + } + return R.error(aR.getErrorMsg()); + } +} \ No newline at end of file diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/request/video/RecognizeVideoCharacterReq.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/request/video/RecognizeVideoCharacterReq.java new file mode 100644 index 0000000..bc93585 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/request/video/RecognizeVideoCharacterReq.java @@ -0,0 +1,26 @@ +package com.heyu.api.controller.request.video; + + +import com.heyu.api.data.dto.BaseRequest; +import com.heyu.api.data.dto.BaseResp; +import lombok.Data; + +@Data +public class RecognizeVideoCharacterReq extends BaseRequest { + + + /*** + * 视频 URL 地址。推荐使用上海地域的 OSS 链接,对于文件在本地或者非上海地域 OSS 链接的情况,请参见文件 URL 处理。 + * + * 示例值: + * http://viapi-test.oss-cn-shanghai.aliyuncs.com/viapi-3.0domepic/videoenhan/RecognizeVideoCharacter/xxxx.mp4 + */ + private String videoURL; + + + /** + * 视频的base64 + */ + private String videoBase64; + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/resp/video/RecognizeVideoCharacterResp.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/resp/video/RecognizeVideoCharacterResp.java new file mode 100644 index 0000000..7b4bf5a --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/resp/video/RecognizeVideoCharacterResp.java @@ -0,0 +1,35 @@ +package com.heyu.api.controller.resp.video; + + +import com.heyu.api.data.dto.BaseResp; +import lombok.Data; + +import java.util.List; + +/*** + * https://next.api.aliyun.com/api/ocr/2019-12-30/RecognizeVideoCharacter?tab=DOC&lang=JAVA + * + */ +@Data +public class RecognizeVideoCharacterResp extends BaseResp { + + + /*** + * 帧时间戳,单位毫秒。 + * + * 注意 请注意,该值为 Long 类型,在某些语言中可能存在精度丢失的风险,请小心使用。 + * 示例值: + * 6124533574 + */ + private Long timestamp; + + /*** + * 文字内容。 + * + * 示例值: + * 在桃花盛开的地方 + */ + private List recognizeVideoCharacterTextRespList; + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/resp/video/RecognizeVideoCharacterTextResp.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/resp/video/RecognizeVideoCharacterTextResp.java new file mode 100644 index 0000000..73e1e83 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/resp/video/RecognizeVideoCharacterTextResp.java @@ -0,0 +1,14 @@ +package com.heyu.api.controller.resp.video; + + +import lombok.Data; + +@Data +public class RecognizeVideoCharacterTextResp { + + + + + private String text; + +}