日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android 音乐播放器框架,Android音乐播放器 -- 实现框架

發布時間:2024/1/1 Android 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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音乐播放器 -- 实现框架的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。