乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      使用Vitamio打造自己的Android萬能播放器(9)

       WindySky 2016-05-13

      前言

      如果不想自己去找視頻看,以傳統(tǒng)方式看電視也不錯,比如CCTV、湖南衛(wèi)視等。本章從網(wǎng)絡(luò)收集幾百個電視臺的地址,采用多級分類方式呈現(xiàn),極大豐富在線播放部分的內(nèi)容。

      聲明
        歡迎轉(zhuǎn)載,但請保留文章原始出處:) 
          博客園:http://www.cnblogs.com
          農(nóng)民伯伯: http://over140.cnblogs.com 
      系列
        4、使用Vitamio打造自己的Android萬能播放器(4)——本地播放(快捷搜索、數(shù)據(jù)存儲)
        5、使用Vitamio打造自己的Android萬能播放器(5)——在線播放(播放優(yōu)酷視頻)

        7、使用Vitamio打造自己的Android萬能播放器(7)——在線播放(下載視頻)

        8、使用Vitamio打造自己的Android萬能播放器(8)——細(xì)節(jié)優(yōu)化

       


      正文

      一、目標(biāo)

      以多級目錄分類方式在在線視頻欄目下添加電視臺。


      、主要代碼

      電視臺的地址目前是存在XML文件里,那么本文代碼主要就是解析XML的數(shù)據(jù)了。


      package com.nmbb.oplayer.ui.helper;

      import java.io.IOException;
      import java.util.ArrayList;

      import javax.xml.parsers.DocumentBuilder;
      import javax.xml.parsers.DocumentBuilderFactory;
      import javax.xml.parsers.ParserConfigurationException;

      import org.w3c.dom.Document;
      import org.w3c.dom.Element;
      import org.w3c.dom.NamedNodeMap;
      import org.w3c.dom.Node;
      import org.w3c.dom.NodeList;
      import org.xml.sax.SAXException;

      import android.content.Context;

      import com.nmbb.oplayer.po.OnlineVideo;

      /** 從XML讀取電視臺節(jié)目 */
      public class XmlReaderHelper {

          /** 獲取所有電視分類 */
          public static ArrayList<OnlineVideo> getAllCategory(final Context context) {
              ArrayList<OnlineVideo> result = new ArrayList<OnlineVideo>();
              DocumentBuilderFactory docBuilderFactory = null;
              DocumentBuilder docBuilder = null;
              Document doc = null;
              try {
                  docBuilderFactory = DocumentBuilderFactory.newInstance();
                  docBuilder = docBuilderFactory.newDocumentBuilder();
                  // xml file 放到 assets目錄中的
                  doc = docBuilder.parse(context.getResources().getAssets()
                          .open("online.xml"));
                  // root element
                  Element root = doc.getDocumentElement();
                  NodeList nodeList = root.getElementsByTagName("category");
                  for (int i = 0; i < nodeList.getLength(); i++) {
                      Node node = nodeList.item(i);// category
                      OnlineVideo ov = new OnlineVideo();
                      NamedNodeMap attr = node.getAttributes();
                      ov.title = attr.getNamedItem("name").getNodeValue();
                      ov.id = attr.getNamedItem("id").getNodeValue();
                      ov.category = 1;
                      ov.level = 2;
                      ov.is_category = true;
                      result.add(ov);
                      // Read Node
                  }
              } catch (IOException e) {
              } catch (SAXException e) {
              } catch (ParserConfigurationException e) {
              } finally {
                  doc = null;
                  docBuilder = null;
                  docBuilderFactory = null;
              }
              return result;
          }

          /** 讀取分類下所有電視地址 */
          public static ArrayList<OnlineVideo> getVideos(final Context context,
                  String categoryId) {
              ArrayList<OnlineVideo> result = new ArrayList<OnlineVideo>();
              DocumentBuilderFactory docBuilderFactory = null;
              DocumentBuilder docBuilder = null;
              Document doc = null;
              try {
                  docBuilderFactory = DocumentBuilderFactory.newInstance();
                  docBuilder = docBuilderFactory.newDocumentBuilder();
                  // xml file 放到 assets目錄中的
                  doc = docBuilder.parse(context.getResources().getAssets()
                          .open("online.xml"));
                  // root element
                  Element root = doc.getElementById(categoryId);
                  if (root != null) {
                      NodeList nodeList = root.getChildNodes();
                      for (int i = 0, j = nodeList.getLength(); i < j; i++) {
                          Node baseNode = nodeList.item(i);

                          if (!"item".equals(baseNode.getNodeName()))
                              continue;
                          String id = baseNode.getFirstChild().getNodeValue();
                          if (id == null)
                              continue;
                          OnlineVideo ov = new OnlineVideo();
                          ov.id = id;

                          Element el = doc.getElementById(ov.id);
                          if (el != null) {
                              ov.title = el.getAttribute("title");
                              ov.icon_url = el.getAttribute("image");
                              ov.level = 3;
                              ov.category = 1;
                              NodeList nodes = el.getChildNodes();
                              for (int m = 0, n = nodes.getLength(); m < n; m++) {
                                  Node node = nodes.item(m);
                                  if (!"ref".equals(node.getNodeName()))
                                      continue;
                                  String href = node.getAttributes()
                                          .getNamedItem("href").getNodeValue();
                                  if (ov.url == null) {
                                      ov.url = href;
                                  } else {
                                      if (ov.backup_url == null)
                                          ov.backup_url = new ArrayList<String>();
                                      ov.backup_url.add(href);
                                  }
                              }
                              if (ov.url != null)
                                  result.add(ov);
                          }
                      }
                  }
              } catch (IOException e) {
                  e.printStackTrace();
              } catch (SAXException e) {
                  e.printStackTrace();
              } catch (ParserConfigurationException e) {
                  e.printStackTrace();
              } finally {
                  doc = null;
                  docBuilder = null;
                  docBuilderFactory = null;
              }
              return result;
          }
      復(fù)制代碼

       

      三、下載

         請移步#Taocode(SVN):

         項目地址:http://code./p/oplayer

      SVN地址:http://code./svn/oplayer/ 

       

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多