Android实战 – 音心播放器 (MusicActivity ,MusicNotification,MusicService总结)
最后更新于:2022-04-01 10:52:58
1.背景
在MusicActivity ,MusicService 和MusicNotification 中,BroadcastReceiver 起着至关重要的作用。BroadcastReceiver 存在于 MusicActivity 和 MusicService 中 ,是两者沟通的桥梁,是整个App的核心功能。MusicSerice 有着控制音乐,后台播放的作用,MusicActivity 有着前台显示当前歌曲的信息和当前的歌词信息等,同时还显示当前的进度,剩余时间等。而MusicNotification ,在应用在后台运行的时候,可以显示当前歌曲信息。三者之间的通信,以MusicService为核心,衔接着三者之间的通信。
2.BoradCastReceiver功能实现回顾
(1)图解
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-19_5715764c432dd.jpg)
(2)实现步骤:
1)首先在实现BroadCastReceiver接口,实现OnReceiver() 方法
2)其次创建 BoradCastReceiver 对象,并添加IntentFilier的Action xxx
3)在者注册 BroadCastReceiver, registerReceiver ()
4)不使用的时候,解除注册 unRegisterReceiver()
(3)使用步骤
1)创建Intent 对象
2)添加BoradCastReceiver 中 IntentFiliter 的 Actionxxx
3)给intent对象 put参数
4)sendBroadCast(intent)
3.MusicService 和 MusicNotification 回顾
(1)图解
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-19_5715764c5c679.jpg)
(2)说明
MusicNotification 的初始化 ,更新, 修改 均在MusicService 中实现,包括MusicActivity 更改歌曲信息,更新到通知栏,均在MusicService中调用实现。而MusicNotification 对 音乐的控制 通过 BroadcastReceiver实现,具体过程见 :
# [Android实战 - 音心播放器 (通知实现音乐的播放/暂停/下一曲控制)](http://blog.csdn.net/lablenet/article/details/50323249)
#
4.MusicActivity , MusicNotification ,MusicService
(1)图解
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-19_5715764dba587.jpg)
(2)说明
[点击查看原](http://img.blog.csdn.net/20151216151717257)图
1) 基本过程:当点击播放的时候,发送广播到MusicService ,MusicSrvice接受广播取得参数,对其进行控 制, 1)播放当前音乐 ;2)更新通知栏;3)发送广播给MusicActivity,更新MusicActivity界面状态;
2)Notification 控制播放 (实际上和上面一样)
基本过程:当点击播放的时候,发送广播到MusicService ,MusicSrvice接受广播取得参数,对其进行控 制, 1)播放当前音乐 ;2)更新通知栏;3)发送广播给MusicActivity,更新MusicActivity界面状态;
5.总结
在学习使用过程中,其实BoradCastReceiver 是可以静态实现,即在 AndroidManfest.xml 中进行配置的,这个使用了动态注册的方式实现。在这里理解清楚 整个控制流程尤为重要,在自己做的过程中,没有去想,而直接去做了,实在不应该。以后要多用图来理解每个过程。