2021SC@SDUSC
对视频文件的处理封装在类MediaFilePreviewImpl中,包含filePreviewHandle文件预览处理、convertUrl检查视频文件处理逻辑、checkNeedConvert检查是否需要转换、convertToMp4遇到浏览器无法处理的视频格式时将视频格式转换为MP4。
目录
1、文件预览处理
首先根据url判断文件是不是浏览器可以直接访问的(是http开头),若不是则调用DownloadUtils工具类中的downLoad方法将文件下载到本地,之后调用BaseUrlFilter工具类的getBaseUrl() 方法和fileHandlerService的getRelativePath方法获取下载后的url,并赋给fileAttribute文件属性对象方便日后调用。
之后调用类中的checkNeedConvert方法检查文件是否需要转换,若需要则调用convertUrl检查视频逻辑并返回处理后的url。若是正常的视频类型,说明不需要转换,调用ConfigConstants的getMedia()方法获取视频类型。
进入for循环,通过判断文件属性后缀media.equals(fileAttribute.getSuffix())来判断文件是否系统可以处理的视频类型,并返回 MEDIA_FILE_PREVIEW_PAGE,若循环结束后都不存在匹配,则返回“暂不支持该文件类型”。
@Override
public String filePreviewHandle(String url, Model model, FileAttribute fileAttribute) {
// 不是http开头,浏览器不能直接访问,需下载到本地
if (url != null && !url.toLowerCase().startsWith("http")) {
ReturnResponse<String> response = DownloadUtils.downLoad(fileAttribute, fileAttribute.getName());
if (response.isFailure()) {
return otherFilePreview.notSupportedFile(model, fileAttribute, response.getMsg());
} else {
url=BaseUrlFilter.getBaseUrl() + fileHandlerService.getRelativePath(response.getContent());