<dependency> <groupId>ws.schild</groupId> <artifactId>jave-all-deps</artifactId> <version>2.5.1</version> </dependency>
public AjaxResult uploadFileVideo(MultipartFile file) throws Exception { try { // 上传文件路径 String filePath = Global.getUploadPath(); // 上传并返回新文件名称 String fileName = FileUploadUtils.upload(filePath, file , MimeTypeUtils.MEDIA_EXTENSION); String url = serverConfig.getUrl() + fileName; String actualFileName = fileName.substring(fileName.indexOf("/",10)); String actualUrl = filePath + actualFileName; File temp = new File(actualUrl); AjaxResult ajax = AjaxResult.success(); try { double duration = getVedioTime(temp); Long limit = 10L; if(duration <=0 ){ temp.delete(); return AjaxResult.error("视频损坏"); }else if(duration > limit){ temp.delete(); return AjaxResult.error("视频时长不能超过"+limit+"秒"); } ajax.put("duration", duration); } catch (Exception e){ e.printStackTrace(); temp.delete(); return AjaxResult.error("视频解析失败"); } ajax.put("fileName", fileName); ajax.put("url", url); ajax.put("judge", judgeVerticalAndHorizontal(file)); return ajax; } catch (Exception e) { return AjaxResult.error(e.getMessage()); } }
/** * @author Uncle * @Description TODO 判断视频纵向还是横向 * @Date 2020/07/27 11:50 * @param * @return 1 横 0 竖 */ public int judgeVerticalAndHorizontal(MultipartFile file){ float v = 0F; try{ File tempFile = FileUploadUtils.MultipartFileToFile(file); MultimediaObject instance = new MultimediaObject(tempFile); ws.schild.jave.MultimediaInfo m = instance.getInfo(); //> 1 说明是横的。< 1说明是竖着的 v = ((float) m.getVideo().getSize().getWidth()) / ((float) m.getVideo().getSize().getHeight()); }catch (Exception e){ e.printStackTrace(); } return v>1?1:0; }
/** 获取视频时长:秒 * * @param file * @return */ public static Long getVedioTime(File file) { try { MultimediaObject instance = new MultimediaObject(file); ws.schild.jave.MultimediaInfo result = instance.getInfo(); long ls = result.getDuration() / 1000; return ls; } catch (Exception e) { e.printStackTrace(); } return 0L; }
/** * 功能描述 :MultipartFile转file对象 * @author Mr.LiuYong * @date 2019/5/10 18:30 * @param * @return */ public static File MultipartFileToFile(MultipartFile multiFile) { // 获取文件名 String fileName = multiFile.getOriginalFilename(); // 获取文件后缀 String prefix = fileName.substring(fileName.lastIndexOf(".")); // 用当前时间作为文件名,防止生成的临时文件重复 try { File file = File.createTempFile(System.currentTimeMillis() + "", prefix); multiFile.transferTo(file); return file; } catch (Exception e) { e.printStackTrace(); } return null; }
评论 (0)