Android Studio 类微信页面(三)音乐盒实现

Android Studio 类微信页面(三)音乐盒实现

11.12
本次实验完成了一个音乐盒的设置,通过广播嵌入服务中,完成了以下要求:

  • 点击播放按钮播放音乐
  • 点击暂停按钮暂停音乐
  • 点击上一首下一首切换音乐

项目效果如下:
点击播放按钮播放音乐
在这里插入图片描述
点击暂停按钮或停止按钮停止播放音乐
在这里插入图片描述
点击上一首,下一首按钮切换音乐
在这里插入图片描述
实现如下:
1.下载音乐文件及图片和按钮图片
按钮图标可以从阿里图标矢量库下载,放到res资源文件夹下的drawable文件夹下,音乐文件可以在main文件夹下新建一个assets文件夹来存放。
2.编写主界面布局文件
主布局文件除了四个按钮,其他可以自由设置,我还设置了一个播放音乐对应的图片控件和两个TextView控件用于显示作者和歌曲标题。采用的是约束布局ConstraintLayout ,在布局嵌套较多的时候可以更加灵活的调整小控件的位置,像此例中的布局,本来想采用LinearLayout嵌套实现,设置多个LinearLayout,但是在调整布局的时候比较费时,所以换用了ConstraintLayout,ConstraintLayout里面有一个很好的作用就是相对定位,比如按钮都在图片的下边,就可以设置按钮为app:layout_constraintTop_toTopOf="@+id/musicImg",利用这个约束布局其他的可以拖动类似设置就行了。
3.编写MainActivity类和MusicService类
这里是通过将广播嵌入服务中来实现音乐的控制播放。
在MainActivity里先获取前面那些布局按钮并定义音乐播放状态和通知行为,BroadcastReceiver的作用是对发送出来的Broadcast进行过滤接受并响应,所以这里自定义了一个BroadcastReceiver类用于接收从MusicService传回来的广播,并重写onReceive这个方法实现从消息中获取歌曲播放的状态从而改变按钮的图标,对于自定义的广播还需要进行注册。此外需要对这四个按钮的监听函数,还有一个点击函数,在点击函数里创建一个intent,intent就相当于一个信使来传递信息,这里将MainActivity里点击哪个按钮的状态传到MusicService,这样MusicService就能对播放状态进行处理。
在MusicService类里面,实现创建服务函数,在这个里面不仅实现创建音乐播放器MediaPlayer,为MediaPlayer播放完成事件绑定监听器,实现了一个播放音乐的函数,另外还需要创建MyReceiver类用于接收广播处理播放、暂停、上一首、下一首的情况,发送广播通知MainActivity改变图片文字。

总之,整个音乐盒的控制播放就是通过内嵌于activity和service之间的广播来控制,在逻辑层分析清楚之后,再一个一个方法实现。
4.代码地址**
完整代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值