大家抱歉~~,課業繁忙,暫時鴿了。以后還是會補上的。源代碼分享給大家了。 --2020.6.4
---------------------------------------------------------------------------------------------------
收到了好多小伙伴的私信,那就和大家分享一下程序開發的思路和代碼。
功能說明->說明文檔
演示視頻->Android音樂播放器
源代碼->GitHub
每個功能具體實現可能需要單開一篇博客來介紹,不然篇幅太長大家也就失去了耐心。
1.系統功能
圖1.1頁面層次
圖1.2首頁 功能概述圖
圖1.3服務 功能概述圖
系統界面和功能概述如上圖所示,主要具體實現功能如下:(*與代碼量/實現難度成正比)
- 點擊播放音樂*
- 后台播放***
- 點擊/自動播放下一曲**
- 單曲循環/列表循環*
- 進度條顯示,可拖動播放的進度條
- 歌曲名/歌手名搜索**
- 自動掃描獲取手機內存歌曲*
- 聯網時加載預置在線歌曲*
- 初次打開軟件,請求獲取存儲權限*
- 側滑菜單欄界面+主頁面動態聯動***
- 前端交互優化,點擊水波紋效果/控制鍵按壓反色動態效果**
2.涉及到的技術點
技術難點:
① 實現完全的前后端分割,activity與service分割,activity結束后service仍可后端運行,activity再次啟動時,綁定service並獲取信息設置頁面信息。
② 側滑菜單欄的實現頁面切換時,為了減小頁面切換的延遲,使用動態fragment,並將每個創建的fragment壓棧。
③ 為了達到列表的篩選效果,無方法可以調用的情況下,自己實現了基於歌名和歌手名的篩選邏輯。
④ 設計了軟件圖標、界面和所有的交互按鈕動態效果。
用到的組件/類:
Activity中:
ImageView(所有的點擊圖標)、TextView(顯示信息)、ToolBar+SearchView(搜索框)、RecyclerView+ LinearLayoutManager (列表)、SeekBar+Handler+ Runnable(進度條)、BroadcastReceiver+ IntentFilter (界面信息更新)、ConnectivityManager+ NetworkInfo (網絡狀態)、ContentResolver+ Cursor(讀取內存歌曲)
DrawerLayout+ NavigationView+ Fragment+ FragmentManager+ FragmentTransaction(側滑菜單)、DisplayMetrics+ RelativeLayout(主頁面動態聯動)
Service中:
Service(音樂服務) 、IntentService(轉發更新信息)、MediaPlayer(音樂播放)
啟動頁面:
RxPermissions(github第三方開源庫 動態權限獲取)
其他:Toast、Intent等
3.功能實現
1.后台音樂播放構架
2.待更......
3.