Android1网络视频播放器Word文档下载推荐.docx
- 文档编号:18431413
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:44
- 大小:627.40KB
Android1网络视频播放器Word文档下载推荐.docx
《Android1网络视频播放器Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Android1网络视频播放器Word文档下载推荐.docx(44页珍藏版)》请在冰豆网上搜索。
说明服务器已经成功运行。
其中,之前六个以“.jsp”结尾的超链接分别对应服务器端程序中的六个Jsp文件,每个Jsp文件可以返回一个XML格式的结果,供手机客户端程序解析。
而后面的“picture/”和“video/”两个超链接对应服务器端程序中的两个文件夹,分别存放图片和视频。
getSharpCategory.jsp:
返回该服务器端所有视频栏目的信息以及该栏目对应的标示图片及访问该类型的所有视频的列表地址。
返回结果格式如下:
<
sharpCategorys>
<
total>
4<
/total>
sharpCategory>
categoryid>
1<
/categoryid>
caption>
经典<
/caption>
regularIcon>
http:
8080/SharpVideo/picture/icon/jingdian.png<
/regularIcon>
showno>
8080/SharpVideo/getSharpVideoByCategroyid1.jsp<
/showno>
categorytype>
/categorytype>
parentid>
0<
/parentid>
/sharpCategory>
…………
/sharpCategorys>
getSharpVideo.jsp:
返回所有视频信息。
sharpVideos>
20<
sharpVideo>
videoid>
315<
/videoid>
description>
万山红_红歌_山丹丹开花红艳艳_镜头版<
/description>
uploaddate>
2010-05-0316:
13:
03.0<
/uploaddate>
title>
/title>
owner>
sharpandroid<
/owner>
pictureUrl>
8080/SharpVideo/picture/1jingdian/wanshanhong_hongge_shandandankaihuahongyanyan_jingtouban.jpg<
/pictureUrl>
length>
10<
/length>
size>
/size>
keywords>
/keywords>
processed>
/processed>
androiddownloadurl>
8080/SharpVideo/video/1jingdian/wanshanhong_hongge_shandandankaihuahongyanyan_jingtouban.mp3<
/androiddownloadurl>
androidplayurl>
/androidplayurl>
/sharpVideo>
……
/sharpVideos>
至于后面四个“.jsp”文件返回的分别是不同栏目的视频信息,格式与getSharpVideo.jsp的结果一致。
1.3.2UI页面设计
主页面具体代码补充完整
具体代码为:
频道页面
具体代码补充完整
对话框页面
图片和具体代码补充完整
下载页面显示:
具体代码代码为:
?
xmlversion="
1.0"
encoding="
utf-8"
?
>
LinearLayoutxmlns:
android="
android:
orientation="
vertical"
layout_width="
fill_parent"
layout_height="
background="
@drawable/back"
TextViewandroid:
wrap_content"
/>
EditTextandroid:
id="
@+id/path"
ProgressBarandroid:
18dip"
style="
android:
attr/progressBarStyleHorizontal"
@+id/progressBar"
gravity="
center"
@+id/result"
Buttonandroid:
text="
下载"
@+id/button_download"
暂停"
@+id/button_pause"
删除"
@+id/button_delete"
返回首页"
@+id/button_back"
@+id/button_alreadylist"
已下载列表"
/LinearLayout>
已下载列表界面:
播放页面:
具体代码代码为
LinearLayoutxmlns:
android:
padding="
10px"
SurfaceView
240dip"
@+id/surfaceView"
/>
RelativeLayout
>
TextView
@+id/playTime"
00:
00"
/TextView>
<
SeekBar
@+id/progress_bar"
200px"
layout_toRightOf="
@id/playTime"
@+id/totalTime"
@id/progress_bar"
/RelativeLayout>
ImageButtonandroid:
@+id/button_up"
android:
layout_marginTop="
5px"
style="
attr/buttonStyleSmall"
android:
src="
@drawable/button_up"
/>
@+id/button_play"
@id/button_up"
@drawable/button_pause"
@+id/button_next"
@id/button_play"
@drawable/button_next"
代码为:
1.3.3XML解析
Ø
文件结构:
在本应用中从服务器端信息都是以XML形式获得,这里就在所难免的需要使用前面章节讲到的XML解析相关应用。
实体类
首先需要我们根据需求写出相应的实例类。
结合本例,需要解析的有两个实体。
1:
当用户发出请求需要获得内容列表时,解析视频信息需要的视频对象。
2:
当用户发出请求需要获得内容分类时,解析分类信息需要的分类对象。
com.sharpandroid_video.channel.entity
+Video.java
+Category.java
Handler类
使用SAX解析,在处理不同类型的XML时就需要不同的Handler类,这是SAX解析的特点。
com.sharpandroid_video.channel.entity.xml
+ChannelHandler.java
+VideoHandler.java
由于从服务器得到的XML的结构较为简单,在重写Handler时,没必要重写无关的事件,ChannelHandler.java代码如下:
packagecom.sharpandroid_video.channel.entity.xml;
importjava.util.ArrayList;
importorg.xml.sax.SAXException;
importorg.xml.sax.helpers.DefaultHandler;
importcom.sharpandroid_video.channel.entity.Category;
publicclassChannelHandlerextendsDefaultHandler{
privateStringcontent;
privateCategorycurrent=newCategory();
publicArrayList<
Category>
channels=newArrayList<
();
@Override
publicvoidcharacters(char[]ch,intstart,intlength)
throwsSAXException{
Stringpart=newString(ch,start,length);
if(!
part.equals("
\n"
))
if(content!
=null)
content+=part;
else
content=part;
}
publicvoidendElement(Stringuri,StringlocalName,Stringname)
if("
categoryid"
.equalsIgnoreCase(localName)){
current.setCategoryid(content);
}elseif("
regularIcon"
current.setRegularIcon(content);
AltIcon"
current.setAltIcon(content);
Thumbnail"
……………….
channels.add(current);
current=newCategory();
}
content=null;
}
大家可以看到,本例里只是重写了characters(),endElement()两个事件,就完成了需求。
这是值得注意的,在开发过程中并不是所有的Handler事件都要重写的,结合你需要解析的XML特点,编写以最简洁的方式完成自己的应用,才是最佳方式。
VideoHandler.java的编写类似,故不再赘述。
方法实现:
com.sharpandroid_video.helper
+ParserXML.java
在实体类,Handler类编写完毕,就是整体的实现过程,下面给出获得“推荐内容”XML文件的过程。
其他方法类同。
publicstaticArrayList<
Video>
TopVideoList(){
try{
VideoHandlerhandler=newVideoHandler();
Stringhttp="
//192.168.1.188:
8080/SharpVideo/getSharpVideo.jsp"
;
InputStreaminput=newURL(http).openStream();
SAXParsersp=spf.newSAXParser();
XMLReaderreader=sp.getXMLReader();
reader.setContentHandler(handler);
InputSourceinputSource=newInputSource(input);
reader.parse(inputSource);
input.close();
returnhandler.videos;
}catch(Exceptione){
e.printStackTrace();
returnnull;
1.3.4视频文件下载
下载模块概述
为了实现视频的播放,需要将文件从网络下载到本地,将文件存储在手机的SD卡中,之后再随时读取SD卡中的文件,实现文件的播放。
在下载中为了提高运行的效率和用户的体验,我们依然采取多线程、断点的方式,在之前的网络一章中已经重点介绍了如何实现多线程、断点下载,下面我们就来进一步完善它。
说明:
由于此模块是在以前多线程、断点功能上完善,很多代码都是重复的,而且数量是很多的。
此节只介绍了关键代码,有些删减的代码需要回顾网络一篇多线程、断点下载。
望理解。
实现流程:
在BrowserActivity界面中弹出buildDialog对话框--下载DownLoaderActivity界面--点击【下载】Button--断点、多线程下载
--点击【暂停(删除)】Button--下载暂停(删除)
--点击【返回首页】Button--回到首页界面
--点击【已下载列表】Button--转到已经文件界面
实现思路:
1.在实现断点、多线程的基础上传入一个唯一标识位实现下载的暂停和删除。
2.将已经下载的文件存入到SD卡的同时,新建一个数据库表,存入下载文件的相关信息。
3.点击【已下载列表】按钮通过Intent跳转到已下载目录,并显示已下载文件信息。
4.点击已下载文件的任意信息,跳转到播放的界面,实现本地播放。
5.点击【返回首页】按钮通过Intent跳转到首页。
下载模块的下载
文件的下载将采用多线程、断点的方式,相关知识已经在网络一篇有很详细的介绍,这里就不再过多赘余,下面是实现下载的时序图:
如有不清楚请回顾网络一章,现在要在此基础上实现下载的暂停和删除操作。
下载模块的暂停
首先需要了解下载过程中线程的相互关系:
1.主进程(主线程)开启了一个download线程。
2.download线程又开启了三条用于真正下载的线程。
它们在工作的过程中是独立的,并发的执行流,当要暂停下载操作时,需要同时听停止三条真正下载的线程,在线程中已经为我们提供了类似的方法,但是这里我们使用标记位的方式来实现。
当点击下载的同时给其绑定一个Map值,其key为每一个下载资源的path,values为每一个下载传入一个Boolean的值,true或者false。
当我们点击【下载】时会同时也把这个标记值传过去,在实现下载的DownloadThread类中进行判断,如果传入是true则下载。
反之点击【暂停】时,传入是false则暂停。
注意:
在暂停时不要单一的去暂停当前下载的线程,因为操作系统是采用的是效率更高的抢占式多任务策略,如果你停了其中的一个,还有两个可以抢占cpu资源继续下载,所以我们根据它的唯一标记url来判断,则可以同时将其停止。
编写DownLoaderActivity.java代码:
(完整)
packagecom.sharpandroid_video.download.download.activity;
publicclassDownLoaderActivityextendsActivity{
privatestaticfinalStringTAG="
DownLoaderActivity"
privateEditTextpathEditT
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android1 网络 视频 播放
![提示](https://static.bdocx.com/images/bang_tan.gif)