14天學會安卓開發(第十四天)Android專案案例: mp3播放器
【原文:http://blog.csdn.net/corder_raine/article/details/8317486】
目錄
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.用主題控制字型與顏色 13514.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播放器的簡單用法的對話方塊。
參考專案:MenuDemo與DialogDemo
14.1.12 需求解析:
12.用主題控制字型與顏色
Ø ThemeDemoes alues下面放置themes.xml
Ø 在themes.xml中定義應用全域性的樣式
參考專案:ThemeDemo
原始碼下載
相關文章
- 14天學會安卓開發(第六天)Android Service安卓Android
- 14天學會安卓開發(第十三天)Android多媒體開發安卓Android
- 14天學會安卓開發(第十天)Android網路與通訊安卓Android
- 14天學會安卓開發(第十二天)Android動畫技術安卓Android動畫
- 14天學會安卓開發(第一天)Android架構與環境搭建安卓Android架構
- 14天學會安卓開發(第十一天)Android圖形技術安卓Android
- 14天學會安卓開發(第四天)基礎UI控制元件安卓UI控制元件
- 14天學會安卓開發(第二天)Android程式設計基礎activity和intent安卓Android程式設計Intent
- 14天學會安卓開發(第七天)資料儲存之SharedPreferences與檔案安卓
- 14天學會安卓開發(第五天)高階UI控制元件安卓UI控制元件
- 14天學會安卓開發(第八天)SQLite資料庫技術安卓SQLite資料庫
- 14天學會安卓開發(第九天)ContentProvider與BroadcastReceiver安卓IDEAST
- 14天學會安卓開發(第三天)UI事件處理與佈局管理安卓UI事件
- 安卓開發日記14安卓
- Android元件化開發案例(融合數10個專案模組)Android元件化
- 第十四天
- 第144篇:阿里低開專案 init方法阿里
- Java學習筆記——第十四天Java筆記
- JavaWeb學習筆記——第十四天JavaWeb筆記
- 【javaWeb】第54天——專案部署(nginx)JavaWebNginx
- hadoop專案開發案例舉例Hadoop
- Python專案開發案例(一)————學生資訊管理系統Python
- 安卓Android 按鈕案例安卓Android
- 遊戲開發第6天遊戲開發
- 5.14安卓開發日記35安卓
- 分享一下前幾天學到的專案開發思路
- Kotlin 入門開發__安卓小專案實戰Kotlin安卓
- 案例研究:專案研發為什麼會失敗?(轉)
- 【javaWeb】第51天—— WEB實戰專案三JavaWeb
- 【javaWeb】第52天—— WEB實戰專案四JavaWeb
- 一本實踐的專案開發《Python專案開發實戰(第2版)》Python
- 30天幫你一步步學會Python的開源專案Python
- [開發教程]第14講:Bootstrap表格boot
- Mp3 播放器 (程式+原始碼)播放器原始碼
- Android開發把專案打包成apkAndroidAPK
- Android開發之專案經驗分享Android
- 安卓(Android)開發基礎知識安卓Android
- 秒合約開發系統專案案例|秒合約現成案例