14天学会安卓开发(第十四天)Android项目案例: mp3播放器

【原文:http://blog.csdn.net/corder_raine/article/details/8317486

14天学会安卓开发  
作者:神秘的N (英文名  corder_raine)
联系方式:369428455(反馈)
交流群 :284552167(示例,原文档下载)
版权为作者所有,如有转载请注明出处
目录      



14.Android项目案例: mp3播放器... 132
14.1需求列表... 132
14.1.1 需求解析:1.创建Web应用... 133
14.1.2 需求解析:2.编写XML文件... 133
14.1.3 需求解析:3.网络下载XML. 133
14.1.4 需求解析:4.解析XML文件示... 133
14.1.5 需求解析:5.下载mp3. 134
14.1.6 需求解析:6.多线程下载mp3. 134
14.1.7 需求解析:7.显示mp3下载进度... 134
14.1.8 需求解析:8.在线播放mp3. 134
14.1.9 需求解析:9.后台播放mp3. 135
14.1.10 需求解析:10.植入广告... 135
14.1.11 需求解析:11.关于对话框... 135
14.1.12 需求解析:12.用主题控制字体与颜色    135





14.Android项目案例: mp3播放器
14.1需求列表
      1.创建Web应用,管理mp3文件。
      2.编写XML文件,其中包含mp3文件名。
      3.Android程序需要通过网络下载XML格式列表文件。
      4.解析XML文件,在手机中显示资源列表。
      5.点击mp3名字需要下载相应mp3文件。
      6.需要支持多线程下载。
      7.需要显示软件下载的进度。
      8.能够本地与远程播放mp3音乐文件。
      9.在后台服务中播放mp3文件。
      10.在播放器中需要植入广告动画。
      11.需要有关于软件的介绍和简单使用方法。
      12.用样式或主题控制字体与颜色。
14.1.1 需求解析:
1.创建Web应用
Ø   创建项目Mp3Site
Ø   在WebRoot或WebContent目录下面创建music子目录
Ø   在music目录中添加mp3文件与musics.xml

参考项目: MediaSite

14.1.2 需求解析:
2.编写XML文件
       song.mp3
       ILoveYou.mp3
参考项目: MediaSite

14.1.3 需求解析:
3.网络下载XML
01
02
03
04
05
06
07
08
09
10
11
12
URL url = newURL(“[url]http: //192.168.50.50:8080/Mp3Site/music/musics.xml[/url]");
conn = url.openConnection();
is_sdcard = conn.getInputStream();
File destFile = newFile( "/sdcard/musics.xml" );
destFile.createNewFile();
String path = destFile.getAbsolutePath();
FileOutputStream fos_sdcard = newFileOutputStream(destFile);
int bytesRead; byte buff[] = newbyte[ 1024 ];
while ((bytesRead = is_sdcard.read(buff))> 0 ) {
        fos_sdcard.write(buff, 0 , bytesRead);
}
fos_sdcard.close(); is_sdcard.close();
参考:/SuperMediaPlayer/src/com/lxt008/common/DownloadFileActivity.java

14.1.4 需求解析:
4.解析XML文件示
List list = newArrayList();
01
02
03
04
05
06
07
08
09
10
11
/* 将XML转换成Document对象 */
DocumentBuilderFactory dbf =    DocumentBuilderFactory.newInstance();
DocumentBuilder db =dbf.newDocumentBuilder();
Document doc = db.parse(is);
NodeList nodeList =doc.getElementsByTagName(elementsTagName);
int len = nodeList.getLength();
for ( int i = 0 ; i < len; i++) {
        Stringcontent = nodeList.item(i).getChildNodes().item( 0 )
        .getNodeValue();
        list.add(content);
}
参考:/SuperMediaPlayer/src/com/lxt008/common/XmlUtil.java

14.1.5 需求解析:
5.下载mp3
Ø   与下载XML文件类似。把mp3文件放到/sdcard中。
Ø   把mp3文件名添加到ListView中。Mp3文件多的话需要放到ScrollView中
Ø   参考:/SuperMediaPlayer/src/com/lxt008/music/MusicActivity.java( onListItemClick方法)与ScrollViewDemo

14.1.6 需求解析:
6.多线程下载mp3
Ø   参考:/SuperMediaPlayer/src/com/lxt008/music/MusicActivity.java( onListItemClick方法)
Ø   在点击列表项的时候开一个线程去下载。
u   onListItemClick 方法中new Thread(Runnable).start()

14.1.7 需求解析:
7.显示mp3下载进度
Ø   在下载播放mp3的线程中通过Handler发下载状态的消息
Ø   handleMessage()依据消息更新进度条。
参考:/SuperMediaPlayer/src/com/lxt008/music/MusicActivity.java


14.1.8 需求解析:
8.在线播放mp3
Ø   在线播放与下载后本地播放需要使用TabHost组织界面
1
2
3
mTabHost.addTab(mTabHost.newTabSpec( "tab_test1" )
          .setIndicator( "TAB1" ,getResources().getDrawable(R.drawable.img1))
           .setContent(newIntent( this ,OtherActivity. class )));
Ø   参考项目: OnlineMp3与TabHostDemo

14.1.9 需求解析:
9.后台播放mp3
Ø   需要在关闭播放器后音乐还能播放,所以要用Service来播放
Ø   参考:/SuperMediaPlayer/src/com/lxt008/music/MusicService.java

14.1.10 需求解析:
10.植入广告
Ø   可以做成动画切换图片显示
Ø   参考项目: AnimationDrawableDemo

14.1.11 需求解析:
11.关于对话框
Ø   加入“关于”、“帮助”等菜单。
Ø   点“关于”菜单中显示版权信息与软件简单介绍的对话框。
Ø   点“帮助”菜单中显示mp3播放器的简单用法的对话框。
参考项目:MenuDemoDialogDemo


14.1.12 需求解析:
12.用主题控制字体与颜色
Ø   ThemeDemoes alues下面放置themes.xml
Ø   在themes.xml中定义应用全局的样式
参考项目:ThemeDemo


源代码下载

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值