日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

使用Vitamio打造自己的Android万能播放器(9)—— 在线播放 (在线电视)

發(fā)布時(shí)間:2023/12/13 综合教程 30 生活家
生活随笔 收集整理的這篇文章主要介紹了 使用Vitamio打造自己的Android万能播放器(9)—— 在线播放 (在线电视) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

如果不想自己去找視頻看,以傳統(tǒng)方式看電視也不錯(cuò),比如CCTV、湖南衛(wèi)視等。本章從網(wǎng)絡(luò)收集幾百個(gè)電視臺(tái)的地址,采用多級(jí)分類方式呈現(xiàn),極大豐富在線播放部分的內(nèi)容。聲明  歡迎轉(zhuǎn)載,但請(qǐng)保留文章原始出處:)    博客園:http://www.cnblogs.com    農(nóng)民伯伯: http://over140.cnblogs.com

系列  1、使用Vitamio打造自己的Android萬(wàn)能播放器(1)——準(zhǔn)備  2、使用Vitamio打造自己的Android萬(wàn)能播放器(2)—— 手勢(shì)控制亮度、音量、縮放  3、使用Vitamio打造自己的Android萬(wàn)能播放器(3)——本地播放(主界面、視頻列表)  4、使用Vitamio打造自己的Android萬(wàn)能播放器(4)——本地播放(快捷搜索、數(shù)據(jù)存儲(chǔ))
  5、使用Vitamio打造自己的Android萬(wàn)能播放器(5)——在線播放(播放優(yōu)酷視頻)
  6、使用Vitamio打造自己的Android萬(wàn)能播放器(6)——在線播放(播放列表)

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

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

正文

一、目標(biāo)

以多級(jí)目錄分類方式在在線視頻欄目下添加電視臺(tái)。

二、主要代碼

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

packagecom.nmbb.oplayer.ui.helper;

importjava.io.IOException;
importjava.util.ArrayList;

importjavax.xml.parsers.DocumentBuilder;
importjavax.xml.parsers.DocumentBuilderFactory;
importjavax.xml.parsers.ParserConfigurationException;

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

importandroid.content.Context;

importcom.nmbb.oplayer.po.OnlineVideo;

/**從XML讀取電視臺(tái)節(jié)目*/
publicclassXmlReaderHelper{

/**獲取所有電視分類*/
publicstaticArrayList<OnlineVideo>getAllCategory(finalContextcontext){
ArrayList<OnlineVideo>result=newArrayList<OnlineVideo>();
DocumentBuilderFactorydocBuilderFactory=null;
DocumentBuilderdocBuilder=null;
Documentdoc=null;
try{
docBuilderFactory=DocumentBuilderFactory.newInstance();
docBuilder=docBuilderFactory.newDocumentBuilder();
//xmlfile放到assets目錄中的
doc=docBuilder.parse(context.getResources().getAssets()
.open("online.xml"));
//rootelement
Elementroot=doc.getDocumentElement();
NodeListnodeList=root.getElementsByTagName("category");
for(inti=0;i<nodeList.getLength();i++){
Nodenode=nodeList.item(i);//category
OnlineVideoov=newOnlineVideo();
NamedNodeMapattr=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);
//ReadNode
}
}catch(IOExceptione){
}catch(SAXExceptione){
}catch(ParserConfigurationExceptione){
}finally{
doc=null;
docBuilder=null;
docBuilderFactory=null;
}
returnresult;
}

/**讀取分類下所有電視地址*/
publicstaticArrayList<OnlineVideo>getVideos(finalContextcontext,
StringcategoryId){
ArrayList<OnlineVideo>result=newArrayList<OnlineVideo>();
DocumentBuilderFactorydocBuilderFactory=null;
DocumentBuilderdocBuilder=null;
Documentdoc=null;
try{
docBuilderFactory=DocumentBuilderFactory.newInstance();
docBuilder=docBuilderFactory.newDocumentBuilder();
//xmlfile放到assets目錄中的
doc=docBuilder.parse(context.getResources().getAssets()
.open("online.xml"));
//rootelement
Elementroot=doc.getElementById(categoryId);
if(root!=null){
NodeListnodeList=root.getChildNodes();
for(inti=0,j=nodeList.getLength();i<j;i++){
NodebaseNode=nodeList.item(i);

if(!"item".equals(baseNode.getNodeName()))
continue;
Stringid=baseNode.getFirstChild().getNodeValue();
if(id==null)
continue;
OnlineVideoov=newOnlineVideo();
ov.id=id;

Elementel=doc.getElementById(ov.id);
if(el!=null){
ov.title=el.getAttribute("title");
ov.icon_url=el.getAttribute("image");
ov.level=3;
ov.category=1;
NodeListnodes=el.getChildNodes();
for(intm=0,n=nodes.getLength();m<n;m++){
Nodenode=nodes.item(m);
if(!"ref".equals(node.getNodeName()))
continue;
Stringhref=node.getAttributes()
.getNamedItem("href").getNodeValue();
if(ov.url==null){
ov.url=href;
}else{
if(ov.backup_url==null)
ov.backup_url=newArrayList<String>();
ov.backup_url.add(href);
}
}
if(ov.url!=null)
result.add(ov);
}
}
}
}catch(IOExceptione){
e.printStackTrace();
}catch(SAXExceptione){
e.printStackTrace();
}catch(ParserConfigurationExceptione){
e.printStackTrace();
}finally{
doc=null;
docBuilder=null;
docBuilderFactory=null;
}
returnresult;
}

}

三、下載

請(qǐng)移步#Taocode(SVN):

項(xiàng)目地址:http://code.taobao.org/p/oplayer

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

四、Vitamio公告

    正式建立Vitamio開(kāi)發(fā)者聯(lián)盟QQ群!群號(hào)為:246969281
    注意:目前僅接受已經(jīng)開(kāi)發(fā)基于Vitamio產(chǎn)品的開(kāi)發(fā)者申請(qǐng)加入,申請(qǐng)理由請(qǐng)?zhí)顚懏a(chǎn)品的名稱和鏈接!

注意更新至2012-07-09發(fā)布的新版SDK:這里。

五、參考

Android讀寫XML(上)——package說(shuō)明

各大電視臺(tái)直播地址

網(wǎng)絡(luò)電視直播地址收集

結(jié)束

本文是新入手Macbook Pro上寫的第一篇文章,諸多不習(xí)慣,仍然在一天內(nèi)成功丟棄鼠標(biāo),離IOS又近一步了:) 系列文章并不強(qiáng)調(diào)用某種技術(shù),但盡可能涉及到多種技術(shù),只有充分了解各種技術(shù)才能在適當(dāng)?shù)臅r(shí)候使用合適的技術(shù)。先實(shí)現(xiàn)后優(yōu)化,不必一步到位糾結(jié)于每個(gè)細(xì)節(jié)。

總結(jié)

以上是生活随笔為你收集整理的使用Vitamio打造自己的Android万能播放器(9)—— 在线播放 (在线电视)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。