派生自 projectDept/qhighschool

EricsHu
2022-12-05 068fc7f2e81178e55fa191a13709af64b1a163f6
src/main/java/com/qxueyou/scc/base/StsCtrl.java
@@ -24,7 +24,7 @@
import com.qxueyou.scc.sys.service.IOssService;
/**
 * aliyun资源临时授权
 * aliyun资源临时授权
 * @author cyq
 *
 */
@@ -45,13 +45,13 @@
   IOssService ossService;
   
   /**
    * 公共数据访问对象
    * 公共数据访问对象
    */
   @Autowired
   private CommonDAO commonDAO;
   
   /**
    * 获取视频的m3u8访问权限,用获取临时访问权限的key路径作为解密密钥,临时生成m3u8文件,并上传到阿里云,并返回路径
    * 获取视频的m3u8访问权限,用获取临时访问权限的key路径作为解密密钥,临时生成m3u8文件,并上传到阿里云,并返回路径
    * @param videoId
    * @param definition
    * @return
@@ -59,11 +59,11 @@
   @RequestMapping(value="video/m3u8", method=RequestMethod.GET, produces = "application/json;charset=utf-8")
   public @ResponseBody Result videoM3u8(@RequestParam("videoId") String videoId, String definition) {
      if (StringUtils.isEmpty(videoId)) {
         return new Result(false, "参数错误");
         return new Result(false, "参数错误");
      }
      
//      json.put("result", "success");
//      // 检查缓存中是否有可用的url,如果有,则直接返回
//      // 检查缓存中是否有可用的url,如果有,则直接返回
//      String urlCache = cacheService.get("sts_url_" + resId, String.class);
//      if (StringUtils.isNotEmpty(urlCache)) {
//         json.put("url", urlCache);
@@ -76,14 +76,14 @@
         MediaVideo video = commonDAO.read(MediaVideo.class, videoId);
         
         if (video == null) {
            return new Result(false, "资源不存在");
            return new Result(false, "资源不存在");
         }
         
         String resId = "";
         String resUrl = null;
         JSONObject json = null;
         
         //判断是否是mp3等音乐格式文件,如果是则直接返回original地址
         //判断是否是mp3等音乐格式文件,如果是则直接返回original地址
         if(checkIsVoiceMedia(video)){
            json =  new JSONObject();
            json.put("result", "success");
@@ -94,14 +94,14 @@
         
         resUrl = this.getM3u8ResUrl(def, video);
         
         //判断是否是加密视频,未加密则直接返回视频地址
         //判断是否是加密视频,未加密则直接返回视频地址
         if(StringUtils.isEmpty(video.getSecretKey())){
            //如果未转码加密,且m3u8视频不存在,则尝试读取MP4视频。
            //如果未转码加密,且m3u8视频不存在,则尝试读取MP4视频。
            if (StringUtils.isEmpty(resUrl)) {
               resUrl = StringUtils.isNotEmpty(video.getAndroidHD()) ? video.getAndroidHD() : StringUtils.isNotEmpty(video.getAndroidSD()) ? video.getAndroidSD() : video.getAndroidLD();
               
               if (StringUtils.isEmpty(resUrl)) {
                  return new Result(false, "资源不存在");
                  return new Result(false, "资源不存在");
               }
            }
            
@@ -110,9 +110,9 @@
            json.put("url", video.getOrigUrl().substring(video.getOrigUrl().indexOf("/video/") + 1));
            json.put("isConver",false);
         }else{
            //如果转码加密后,依然不能读取到M3U8视频或读取到的是MP4直接返回,提示视屏不存在
            //如果转码加密后,依然不能读取到M3U8视频或读取到的是MP4直接返回,提示视屏不存在
            if (StringUtils.isEmpty(resUrl)||resUrl.endsWith(MP4)) {
               return new Result(false, "资源不存在");
               return new Result(false, "资源不存在");
            }
            
            resId = resUrl.substring(resUrl.indexOf("/video/") + 1);
@@ -125,13 +125,13 @@
            
//            String resDir = resId.substring(0, resId.lastIndexOf('/'));
            
            //获取原视频VideoId
            //获取原视频VideoId
//            String keyAddr = video.getOriginVideoId();
//            if(StringUtils.isBlank(keyAddr)){
//               keyAddr = video.getVideoId();
//            }
            
//            // 获取解密key的临时访问权限
//            // 获取解密key的临时访问权限
//            if(StringUtils.isNotEmpty(video.getM3u8KeyPath())){
//               json.put("url", video.getM3u8KeyPath().substring(video.getM3u8KeyPath().indexOf("/video/") + 1));
//            }else{
@@ -169,7 +169,7 @@
   
   
   /**
    * 获取视频的m3u8访问权限,用获取临时访问权限的key路径作为解密密钥,临时生成m3u8文件,并上传到阿里云,并返回路径
    * 获取视频的m3u8访问权限,用获取临时访问权限的key路径作为解密密钥,临时生成m3u8文件,并上传到阿里云,并返回路径
    * @param videoId
    * @param definition
    * @return
@@ -178,7 +178,7 @@
   @RequestMapping(value="video/mp4", method=RequestMethod.GET, produces = "application/json;charset=utf-8")
   public @ResponseBody Result videoMp4(@RequestParam("videoId") String videoId, String definition) {
      if (StringUtils.isEmpty(videoId)) {
         return new Result(false, "参数错误");
         return new Result(false, "参数错误");
      }      
      
      BufferedReader bf = null;
@@ -188,14 +188,14 @@
         MediaVideo video = commonDAO.read(MediaVideo.class, videoId);
         
         if (video == null) {
            return new Result(false, "资源不存在");
            return new Result(false, "资源不存在");
         }
         
         String resId = "";
         String resUrl = null;
         JSONObject json = null;
         
         //判断是否是mp3等音乐格式文件,如果是则直接返回original地址
         //判断是否是mp3等音乐格式文件,如果是则直接返回original地址
         if(checkIsVoiceMedia(video)){
            json =  new JSONObject();
            json.put("result", "success");
@@ -206,14 +206,14 @@
         
         resUrl = this.getMp4ResUrl(def, video);
         
         //如果转码地址不存在,并且源码地址是mp4则直接使用原视频地址播放
         //如果转码地址不存在,并且源码地址是mp4则直接使用原视频地址播放
         if(StringUtils.isEmpty(resUrl) && video.getOrigUrl().endsWith(MP4)){
               resUrl =  video.getOrigUrl().substring(video.getOrigUrl().indexOf("/video/") + 1);
         }
         
         //查看原视频是否是MP4
         //查看原视频是否是MP4
         if (StringUtils.isEmpty(resUrl)) {
            return new Result(false, "资源不存在");
            return new Result(false, "资源不存在");
         }
         
         json =  new JSONObject();
@@ -233,7 +233,7 @@
   
   
   /**
    * 获取resurl
    * 获取resurl
    * 
    * @param def
    * @param video
@@ -244,7 +244,7 @@
   }
   
   /**
    * 获取resurl
    * 获取resurl
    * 
    * @param def
    * @param video
@@ -255,7 +255,7 @@
   }
   
   /**
    * 判断是否是音频media,精确判断需要枚举音频格式
    * 判断是否是音频media,精确判断需要枚举音频格式
    * @return
    */
   private  boolean checkIsVoiceMedia(MediaVideo media){
@@ -272,7 +272,7 @@
   }
   
   /**
    * 测试接口专用
    * 测试接口专用
    * @param request
    * @return
    */