android 音乐播放器框架,Android音乐播放器 -- 实现框架
MediaPlayer 框架有兩種方案
第一種是通過全局變量保存當前狀態,觸發狀態后獲取全局變量進行配置
第二種是通過intent,讓 Media player service 和 activity之間通信,實現同步
其實兩種方法各有優勢,第一種方法實現起來相對簡單快捷,而第二種方法實現起來比較困難,但是對Acitvity 和 Service通信機制的學習確是大有裨益
最后我還是選了第二種方法,折騰折騰
既然選擇了使用intent進行操作,那么我們就需要一個和所有模塊都有交集的”中部樞紐“ 來控制全局,很明顯,MediaPlayer Service可以擔此大任,大體框架如下圖
圖是畫的有些惡心,但是大體的關系還是比較明確的,主要有兩點 :
1. 將播放列表點擊事件 ?發送給service
intent.setAction("com.saberhao.mediaservice.MUSIC_SERVICE");
2. service 更新歌曲信息后 發送請求 更新UI界面上相關信息
Intent sendIntent = new Intent(ACTION_UPDATE_INFO);
sendBroadcast(sendIntent);
傳遞的信息 主要包括 :
1. 當前指針,也就是播放列表的位置listPosition
intent.putExtra("listPosition", listposition);
2 .當前列表, 其實也是當前數據庫, 因為 歌曲 / 專輯 / 歌手 播放列表 都是不同的數據庫,所有有不同數據庫類型TYPE
intent.putExtra("TYPE", Common.PlayerType.TYPE_ALL);
3. 列表分類, 既數據庫信息 ?TitleName(什么專輯 什么歌手 之類的信息)
intent.putExtra("TitleName", titleName);
4. 當前動作信息 MSG(點擊/ 暫停/開始/下一首/上一首 等)
intent.putExtra("MSG", Common.PlayerMsg.MSG_PLAY);
5. 當前是否真正播放isPlaying
intent.putExtra("isPlaying", isPlaying);
甘剛開始構思的時候也沒想會有那么多信息需要傳遞,都是后來陸續添加的。
重要的事情,源碼請猛戳?這里下載
這樣就完成了整個 MediaPlayer 基本框架的搭建, 下一篇文章,我們將通過下篇文章Android音樂播放器 -- MediaPlayer Service實現?繼續討論 service 相關內容,敬請期待
總結
以上是生活随笔為你收集整理的android 音乐播放器框架,Android音乐播放器 -- 实现框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 团队-排课软件-项目总结
- 下一篇: 解决KMPlayer App无法播放MK