天天看點

android音樂播放器不能播放器,.解決Android9與10不能播放音樂的問題

1.課程的初忠與目的

問題:通過上課發現,在學習完成Android基本元件後,還會迷茫于如何完成一個完整的應用。

本實踐課程通過開發完成一個“暢聽音樂”的小項目,實作從基本元件的學習到項目開發過程的轉變。

2. 課程的特點

這是一門實踐課程,不講解AS環境的搭建、基礎元件與控件的使用,但會在開發過程中介紹用到的元件的用法。

課程基于項目的基本目标要求,從适合工程開發的角度,分解建立通過元件、自定義視圖元件、自定義工具類、自定義接口與擴充卡擴充基本元件的功能。

課程的目标就是通過一個完整的小項目的開發與練習,帶領小夥伴,實作從學完基本元件後,還無法做實際項目的迷茫,到能獨立分析、設計、編碼完成項目的轉變。

課程以建立項目、配置項目基本資源、開發資料封裝實體類、開發各類工具類、開發主界面的功能、開發背景設定界面的功能、開發 音頻播放界面的功能、開發視訊界面的功能為主線進行全程的程式示範。

3.項目的目标

在Android Studio開發 平台中,使用網易雲服務資料,實作一個簡單的音樂播放器,能實作如下的幾個功能:

1)能實作**歌曲的推薦功能,并以ListView進行音頻清單資料展示,如果歌曲有MV,則要在清單中顯示視訊播放按鈕;

2)能實作按關鍵詞進行線上搜歌的功能,并以ListView進行音頻清單進行分頁資料展示,如果歌曲有MV,則要在清單中顯示視訊播放按鈕;

3)點選新歌推薦清單中的歌曲、或點選線上搜歌清單中的歌曲,能儲存到播放清單SQLite資料庫中,同時打開音樂播放器,使用MediaPlayer進行播放;

4)在音頻播放界面可以選擇歌曲的循環模式、進行第1首、上1首、下1首、last、播放/停止,暫停/繼續的控制,檢視正在播放的歌曲清單,并選擇切換歌曲,

5)點選帶有MV的歌曲條目中視訊播放按鈕,能打開視訊播放界面進行視訊播放;

6)點選下載下傳按鈕,能将網絡 音頻 下載下傳到本地,并存儲到資料庫中,然後可以在本地進行播放。

4.學習本課程的所需求的技術基礎

學習本課程需求的技術基礎如下:

1)會使用AS內建開發 環境;

2)會進行Activity布局界面設計;

3)會使用SQLite資料庫;

4)會使用SharedPreferences存儲對象

5)了解三方庫的概念及加載方式;

一些擴充知識基礎(有了這些基礎,學習本課程将會更加簡單):

6)會使用三方庫進行網絡資源通路和解析;

7)了解MediaPlayer的開發方法;

8)檔案與檔案夾的建立、删除、下載下傳。

當然沒有上面的知識,也可以學習這門課程,我會在課程中詳細的介紹關鍵子產品的實作過程,也會對相關的元件進行介紹,但不會像上基礎課那樣詳細,是以如果基礎弱的話,學習本課程的時間可能會長一些。

5.項目中用到的技術

項目中用到的相關技術如下:

1)網絡通路技術OkHttp3

2)JSON解析技術(阿裡fastjson)解析網易雲服務json資料

3)MediaPlayer播放音頻檔案(本地檔案、網絡檔案)、MediaPlayer+SurfaceView播放視訊檔案

4)AnimateObject對象動畫

5)權限的靜态注冊與動态注冊

6)根據網易雲 微服務 傳回的資料建構 實體類vo

7)SQLite資料庫的操作(資料庫輔助Helper類,各具體的對象的資料操作DAO類)

8)檔案的下載下傳處理、檔案夾的建立、檔案的建立與删除(需要網絡權限與檔案讀寫權限)

9)實作設定整個項目的背景圖

10)SharedPreferences的使用,存儲設定資料

11)使用三方的圖檔顯示元件smartImageView友善的顯示圖檔

12)自定義圓形視圖CircleImageView

13)自定義布局界面元件,如top_with_back.xml等

14)ListView資料顯示技術、分頁加載線上搜尋資料、自定義接口擴充ListView條目中的 圖檔、按鈕控件 的點選事件處理

15)定義TextView跑馬燈效果

16)多線程處理,在網絡線程中通路UI主線程、在MediaPlayer播放過程中更新UI主線程等