java提取编辑器中视频地址,处理腾讯视频和优酷视频

/**
     * 
    * @Title: replacePreTag 
    * @Description: 将自定义视频标签替换成void的
    * @author 凯哥Java
    * @param editContentStr
    * @return    
    * @return Map<String,Object>    
    * @throws
     */
    private Map<String,Object> replacePreTag(String editContentStr) {
        Map<String,Object> map = new HashMap<String, Object>();
        StringBuffer sbUrl = new StringBuffer();
        String regStr = "<pre>([\\s\\S]*?)</pre>";//<pre>是自定义标签
        String urlStr = "(http|https)://([\\s\\S]*?)</";
         Pattern r = Pattern.compile(regStr);
         Pattern urlr = Pattern.compile(urlStr);
         Matcher m = r.matcher(editContentStr);
         List<VoidBean> listBean = new ArrayList<VoidBean>();
        
         while(m.find()){
              Matcher mUrl = urlr.matcher( m.group(0));
              if(mUrl.find()){
                  String url = mUrl.group(0);
                  listBean.add(new VoidBean(0,0,url.substring(0, url.length()-2),m.group(0)));
              }
         }
              String mm ="";
             
              if(null != listBean && listBean.size()>0){
                  for (int i = 0; i < listBean.size(); i++) {
                      StringBuffer    sbCv = new StringBuffer();
                      VoidBean vBean = listBean.get(i);
                      String sn = vBean.getNewStr();
                      if(i== listBean.size()-1){
                          sbUrl.append(sn);
                          
                      }else{
                          sbUrl.append(sn);
                          sbUrl.append(",");
                      }
                      if("http:/".equals(sn.substring(0, 6))){
                          String st = sn.substring(7, sn.length());
                          String yuming = sn.substring(7, st.indexOf("/")+7);
                          mm= yuming.substring(yuming.indexOf('.')+1,yuming.lastIndexOf('.'));
                      }else if("https:".equals(sn.substring(0, 6))){
                          String st = sn.substring(8, sn.length());
                          String yuming = sn.substring(8, st.indexOf("/")+8);
                          mm= yuming.substring(yuming.indexOf('.')+1,yuming.lastIndexOf('.'));
                          
                      }
                     // System.err.println(mm);
                      //进行视频地址处理
                      if("qq".equals(mm)){//腾讯视频的
                          String vid = "";
                          if(sn.indexOf("?vid=")>0){//https://v.qq.com/x/cover/1t9erwhksw1w712.html?vid=w0022c2qlrm
                               vid = sn.substring(sn.indexOf("?vid=")+5);
                              
                          }else {
                              vid = sn.substring(sn.lastIndexOf('/')+1,sn.length()-5);
                          }
                              
                            /* sbCv.append("<ure><embed src=\"https://imgcache.qq.com/tencentvideo_v1/playerv3/TPout.swf?max_age=86400&v=20161117&vid=");
                             sbCv.append(vid);
                             sbCv.append("&auto=0\"");
                             sbCv.append("allowFullScreen=\"true\" quality=\"high\" width=\"480\" height=\"400\" align=\"middle\" ");
                             sbCv.append("allowScriptAccess=\"always\" type=\"application/x-shockwave-flash\"></embed></ure>");
                            */
                          sbCv.append("<ure><p style=\"text-align: center\"><iframe class=\"video_iframe\" style=\"z-index:1;\" ");
                          sbCv.append("src=\"http://v.qq.com/iframe/player.html?vid=");
                          sbCv.append(vid);
//                          sbCv.append("&amp;width=500&amp;height=375&amp;auto=0\" allowfullscreen=\"\" frameborder=\"0\" height=\"375\" width=\"500\"></iframe></p></ure>");
                          sbCv.append("&amp;auto=0\" allowfullscreen=\"\" frameborder=\"0\"></iframe></p></ure>");
                             StringBuilder sbs = new StringBuilder(editContentStr);
                              String preStr = vBean.getOldStr();
                              String url = preStr.substring(0,preStr.length()-2);
                              int  length = editContentStr.indexOf(url);//因为是从开始计数,所以加1
                              int  end   = length+url.length()+2;//取得结束位置
                              //进行替换
                             if(-1!=length){
                                 sbs.replace(length, end, sbCv.toString());
                             }
                              editContentStr= sbs.toString();
                              if(i==listBean.size()-1){
                                  map.put("true", "true");
                                  map.put("msg", "");
                                  map.put("urlList", sbUrl.toString());
                                  map.put("editContentStr", editContentStr);
                              }
                             
                      }else if("youku".equals(mm)){//优酷
                          String vid = sn.substring(sn.indexOf("id_")+3, sn.indexOf(".html"));
                             sbCv.append("<ure><embed src=\"http://player.youku.com/player.php/sid/");
                             sbCv.append(vid);
//                             sbCv.append("/v.swf\" quality=\"high\"  width=\"480\" height=\"400\"  ");
                             sbCv.append("/v.swf\" quality=\"high\"  ");
                             sbCv.append("align=\"middle\" allowScriptAccess=\"sameDomain\" type=\"application/x-shockwave-flash\"></embed></ure>");
                             StringBuilder sbs = new StringBuilder(editContentStr);
                              String preStr = vBean.getOldStr();
                              String url = preStr.substring(0,preStr.length()-2);
                              int  length = editContentStr.indexOf(url);//因为是从开始计数,所以加1
                              int  end   = length+url.length()+2;//取得结束位置
                              //进行替换
                              if(-1 != length){
                                  sbs.replace(length, end, sbCv.toString());
                              }
                             
                              editContentStr= sbs.toString();
                              if(i==listBean.size()-1){
                                  map.put("true", "true");
                                  map.put("msg", "");
                                  map.put("urlList", sbUrl.toString());
                                  map.put("editContentStr", editContentStr);
                              }
                      }else{
                          map.put("true", "false");
                          map.put("msg", "请输入正确的腾讯视频地址或是优酷视频地址。");
                          map.put("urlList", "");
                          map.put("editContentStr", editContentStr);
                      }
                      
                      
                      
                } 
              }else{
                  map.put("true", "true");
                  map.put("msg", "");
                  map.put("urlList", "");
                  map.put("editContentStr", editContentStr);
                  
              }
             
         
         
         return map;
    //    return editContentStr;
        
        /**
         * 
         * 
        
              String regStr = "<pre>([\\s\\S]*?)</pre>";
            String urlStr = "http://([\\s\\S]*?)</";
            
             Pattern r = Pattern.compile(regStr);
             Pattern urlr = Pattern.compile(urlStr);
             Matcher m = r.matcher(editContentStr);
             
             List<VoidBean> listBean = new ArrayList<VoidBean>();
              while(m.find()){
                  Matcher mUrl = urlr.matcher( m.group(0));
                  if(mUrl.find()){
                      String url = mUrl.group(0);
                      listBean.add(new VoidBean(0,0,url.substring(0, url.length()-2),m.group(0)));
                  }
                 // 
              }
             
              for (int i = 0; i <listBean.size(); i++) {
                  StringBuilder sbs = new StringBuilder(editContentStr);
                  VoidBean bean = listBean.get(i);
                  String preStr = bean.getOldStr();
                  String url = preStr.substring(0,preStr.length()-2);
                  int  length = editContentStr.indexOf(url);//因为是从开始计数,所以加1
                  int  end   = length+url.length()+2;//取得结束位置
                 // System.out.print("第"+i+"个。开始位置:"+length+",  结束位置:"+end);
                 // String newStr = "<video src=\""+bean.getNewStr()+"\"  poster=\"\" controls=\"controls\" preload=\"metadata\" webkit-playsinline=\"webkit-playsinline\" type=\"video/mp4\" > </video>";
                  String newStr = "<div style=\"text-align:center;\" ><video src=\""+bean.getNewStr()+"\"  poster=\"\" controls=\"controls\"  > </video></div>";
                  
                  //进行替换
                 //System.out.println( sbs.subSequence(length, end));
                  sbs.replace(length, end, newStr);
                  editContentStr= sbs.toString();
                  
                 
            }
             
        return editContentStr;
    
         */
    }

 

转载于:https://my.oschina.net/kaigejava/blog/797322

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值