m3u8格式文件解析

public class VideoUtil {
    /**
     * 根据电影的m3u8_url解析出ts_url即xxx.ts形式url为元素的集合
     *
     * @param m3u8_url m3u8文件地址
     * @return 返回ts_url集合
     */
    public static ArrayList m3u8Parser(String m3u8_url) {
        try {
            ArrayList list_ts = new ArrayList();
            URL url = new URL(m3u8_url);
            HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
            InputStream in = urlConn.getInputStream();
            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 m3u8_pre = m3u8_url.substring(0, m3u8_url.lastIndexOf("/") + 1);
                        list_ts.add(m3u8_pre + line);
                    }
                }
            }
            in.close();
            return list_ts;

        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
}

发表评论