|
@@ -83,7 +83,8 @@ public class StoreVideoServiceImpl extends ServiceImpl<StoreVideoMapper, StoreVi
|
|
|
List<StoreVideo> videoList = new java.util.ArrayList<>();
|
|
List<StoreVideo> videoList = new java.util.ArrayList<>();
|
|
|
List<String> videoUrls = dto.getVideoUrls();
|
|
List<String> videoUrls = dto.getVideoUrls();
|
|
|
List<Integer> videoIds = dto.getVideoIds(); // 可选的视频ID列表,用于编辑
|
|
List<Integer> videoIds = dto.getVideoIds(); // 可选的视频ID列表,用于编辑
|
|
|
-
|
|
|
|
|
|
|
+ List<String> coverUrls = dto.getCoverUrls();
|
|
|
|
|
+
|
|
|
// 遍历URL列表,每个URL都是视频URL
|
|
// 遍历URL列表,每个URL都是视频URL
|
|
|
int videoIndex = 0;
|
|
int videoIndex = 0;
|
|
|
for (int i = 0; i < videoUrls.size(); i++) {
|
|
for (int i = 0; i < videoUrls.size(); i++) {
|
|
@@ -139,31 +140,32 @@ public class StoreVideoServiceImpl extends ServiceImpl<StoreVideoMapper, StoreVi
|
|
|
|
|
|
|
|
// 尝试根据视频URL自动匹配封面URL(从/file/uploadMore接口获取的封面URL格式)
|
|
// 尝试根据视频URL自动匹配封面URL(从/file/uploadMore接口获取的封面URL格式)
|
|
|
// 封面URL格式:视频URL的扩展名从.mp4等替换为.jpg
|
|
// 封面URL格式:视频URL的扩展名从.mp4等替换为.jpg
|
|
|
- String coverUrl = tryMatchCoverUrl(videoUrl);
|
|
|
|
|
-
|
|
|
|
|
- // 如果匹配不到封面URL,尝试处理视频生成封面
|
|
|
|
|
- if (StringUtils.isBlank(coverUrl)) {
|
|
|
|
|
- log.info("未找到匹配的封面URL,视频URL:{},将尝试处理生成封面", videoUrl);
|
|
|
|
|
- try {
|
|
|
|
|
- // 调用processVideoAndCover处理,生成封面
|
|
|
|
|
- String processedImgUrl = processVideoAndCover(videoUrl);
|
|
|
|
|
- if (StringUtils.isNotBlank(processedImgUrl)) {
|
|
|
|
|
- // 如果处理成功,processedImgUrl已经是JSON格式,直接使用
|
|
|
|
|
- storeVideo.setImgUrl(processedImgUrl);
|
|
|
|
|
- videoList.add(storeVideo);
|
|
|
|
|
- videoIndex++;
|
|
|
|
|
- continue;
|
|
|
|
|
- }
|
|
|
|
|
- } catch (Exception e) {
|
|
|
|
|
- log.error("处理视频封面失败,视频URL:{},错误:{},将保存视频但不包含封面", videoUrl, e.getMessage(), e);
|
|
|
|
|
- // 处理失败时,继续执行下面的逻辑,保存视频但不包含封面
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
+// String coverUrl = tryMatchCoverUrl(videoUrl);
|
|
|
|
|
+//
|
|
|
|
|
+// // 如果匹配不到封面URL,尝试处理视频生成封面
|
|
|
|
|
+// if (StringUtils.isBlank(coverUrl)) {
|
|
|
|
|
+// log.info("未找到匹配的封面URL,视频URL:{},将尝试处理生成封面", videoUrl);
|
|
|
|
|
+// try {
|
|
|
|
|
+// // 调用processVideoAndCover处理,生成封面
|
|
|
|
|
+// String processedImgUrl = processVideoAndCover(videoUrl);
|
|
|
|
|
+// if (StringUtils.isNotBlank(processedImgUrl)) {
|
|
|
|
|
+// // 如果处理成功,processedImgUrl已经是JSON格式,直接使用
|
|
|
|
|
+// storeVideo.setImgUrl(processedImgUrl);
|
|
|
|
|
+// videoList.add(storeVideo);
|
|
|
|
|
+// videoIndex++;
|
|
|
|
|
+// continue;
|
|
|
|
|
+// }
|
|
|
|
|
+// } catch (Exception e) {
|
|
|
|
|
+// log.error("处理视频封面失败,视频URL:{},错误:{},将保存视频但不包含封面", videoUrl, e.getMessage(), e);
|
|
|
|
|
+// // 处理失败时,继续执行下面的逻辑,保存视频但不包含封面
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
|
|
|
// 组合成JSON对象格式(即使没有封面也保存)
|
|
// 组合成JSON对象格式(即使没有封面也保存)
|
|
|
JSONObject videoJson = new JSONObject();
|
|
JSONObject videoJson = new JSONObject();
|
|
|
videoJson.put("video", videoUrl);
|
|
videoJson.put("video", videoUrl);
|
|
|
- if (StringUtils.isNotBlank(coverUrl)) {
|
|
|
|
|
|
|
+ String coverUrl = coverUrls.get(i);
|
|
|
|
|
+ if (StringUtils.isBlank(coverUrl)) {
|
|
|
videoJson.put("cover", coverUrl);
|
|
videoJson.put("cover", coverUrl);
|
|
|
}
|
|
}
|
|
|
|
|
|