package com.yuyh.sprintnba.http.utils; import android.text.TextUtils; import android.util.Xml; import com.yuyh.library.utils.log.LogUtils; import com.yuyh.sprintnba.http.bean.news.VideoRealUrl; import org.xmlpull.v1.XmlPullParser; import java.io.InputStream; /** * 解析xml中的视频网址 * * @author yuyh. * @date 16/7/1. */ public class PullRealUrlParser implements RealUrlParser { @Override public VideoRealUrl parse(InputStream is) throws Exception { VideoRealUrl real = new VideoRealUrl(); XmlPullParser parser = Xml.newPullParser(); //由android.util.Xml创建一个XmlPullParser实例 parser.setInput(is, "UTF-8"); int eventType = parser.getEventType(); while (eventType != XmlPullParser.END_DOCUMENT) { switch (eventType) { case XmlPullParser.START_DOCUMENT: break; case XmlPullParser.START_TAG: if (parser.getName().equals("url")) { String urlbase = parser.nextText(); if ((urlbase.contains(".tc.qq.com")) && TextUtils.isEmpty(real.url)) { real.url = urlbase; LogUtils.i("url = " + real.url); } } else if (parser.getName().equals("fvkey")) { String vkey = parser.nextText(); LogUtils.i("vkey = " + vkey); real.fvkey = vkey; } else if (parser.getName().equals("vid")) { String vid = parser.nextText(); LogUtils.i("vid = " + vid); real.vid = vid; } else if (parser.getName().equals("fn")) { // 目前发现直接用{vid}.mp4 有部分不能播放,用fn下的可以 String fn = parser.nextText(); if (fn.endsWith(".mp4")) { LogUtils.i("fn = " + fn); real.fn = fn; } } break; case XmlPullParser.END_TAG: break; } eventType = parser.next(); } return real; } }