实验要求
使用广播机制,编写音乐盒代码,添加音乐播放的播放、暂停、停止、上一首和下一首控制
实验步骤
一、布局设置
添加一个LinearLayout,选择垂直分布。在里面添加两个LinearLayout:
①music_show:用于展示图片和歌曲信息。添加一个ImageView和两个TextView
②play_control:用于播放控制。添加四个ImageButton。
二、 添加资源
在main下创建文件夹assets,将MP3格式的
文件导入该文件夹中
三、 Java文件编写
本实验通过广播机制来实现,整体的逻辑为:
监听播放控件,控件被点击后,发送数据给MusicService,MusicService根据穿送过来的数据选择播放、暂停、停止、上一首或下一首,再将播放状态发送给MainActivity,MainActivity根据状态更新控件图片。
编写MainActivity类
首先对数据处理一下,定义两个列表存放歌曲名和歌手名
由于我们要实现的功能是点击控件,进行音乐的播放暂停等控制,所以需要为控件设置监听。所以需要重写onCreate方法,通过id找到相应的控件,并设置监听。
重写onClick方法,监听到控件被点击后,通过sendBroadcast将数据发送给MusicService。
在定义一个继承BroadcastReceiver的ActivityReceiver,接收MusicService发送过来的数据,根据播放状态更换控件图标、歌名和歌手名。
编写MusicService类
首先进行数据处理,定义一个列表存放音乐资源名称
创建一个MediaPlayer的实例化对象mPlayer,定义一个PlayReady方法,将要播放的文件加载给mPlayer
重写onCreate方法,为mPlayer播放完成事件绑定监听器
创建一个继承自BroadcastReceiver的MyReceiver,接收MAinActivity传过来的状态信息,通过mPlayer进行播放控制,并修改状态信息,将状态信息发送给MainActivity。
四、 实验结果
启动页面
点击播放按钮后,图标切换并播放音乐:
点击下一首:
停止播放