m3u8解析 多种情况讨论解析

来源:互联网 发布:淘宝和天猫价格不一样 编辑:程序博客网 时间:2024/04/29 07:18
我们在进行m3u8解析的时候,可能会遇到多种情况,需要根据情况进行分析解析。
以下是我在项目遇到的情况,可以参考。

/**
* 根据电影的m3u8_url解析出ts_url即xxx.ts形式url 为元素的集合* @return返回ts_url集合*/public  ArrayList<String> m3u8Parser(String m3u8_url) {HttpResponse httpResponse=new GetresponseUtil().getResponse(m3u8_url);//解析m3u8文件try { if(httpResponse != null){ InputStream in = httpResponse.getEntity().getContent(); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); String line = ""; while((line = reader.readLine()) != null){ if(line.startsWith("#")){ //这里是Metadata信息 }else if(line.length() >0){ //这里是一个指向的视频流路径 ,可能是绝对地址,也可能是相对地址if (line.startsWith("http")) {//如果以http开头,一定是绝对地址了list_ts.add(line);}else {//不以http开头,是相对地址,需要进行拼接。String ts_url;String m3u8_postfixname = m3u8_url.substring(m3u8_url.lastIndexOf("/") + 1, m3u8_url.length());if (m3u8_postfixname.equals("index.m3u8")) {ts_url=m3u8_url.replace("index.m3u8", line);}else {ts_url=m3u8_url.replace("nindex.m3u8", line);}//Log.d(TAG, "往list_ts中添加的ts_url是 : "+ts_url);list_ts.add(ts_url);}} } in.close(); return list_ts;} } catch (Exception e) { e.printStackTrace(); } return null;}


	
				
		
原创粉丝点击