Android 音乐播放器(简单版)
1.创建BroadcastReceiver在里面判断分支
int update = intent.getIntExtra("update", -1);//得到intent中的数据 switch(update){//分支判断 case 1://没有声音播放 status = 1; //设置当前状态 break; case 2://正在播放声音 start.setImageResource(R.drawable.png3);//更换图片 status = 2; //设置当前状态 break; case 3://暂停中 start.setImageResource(R.drawable.png2);//更换图片 status = 3; //设置当前状态 break;
2.注册广播 启动后台
activityReceiver = new ActivityReceiver();//创建BroadcastReceiver IntentFilter filter = new IntentFilter();//创建IntentFilter过滤器 filter.addAction("wyf.ytl.update");//添加Action registerReceiver(activityReceiver, filter);//注册监听 Intent intent = new Intent(this, MyService.class);//创建Intent startService(intent);//启动后台Service
3.在activity的点击事件中判断并发送广播
Intent intent = new Intent("wyf.ytl.control");//创建Intent switch(v.getId()){//分支判断 case R.id.start://按下播放、暂停按钮 intent.putExtra("ACTION", 1);//存放数据 sendBroadcast(intent);//发送广播 break; case R.id.stop://按下停止按钮 intent.putExtra("ACTION", 2);//存放数据 sendBroadcast(intent);//发送广播 break; }
4.在service中创建广播接收在activity中传过来的信息并发送广播令下面的广播可以得到信息
public class ServiceReceiver extends BroadcastReceiver{//自定义BroadcastReceiver @Override public void onReceive(Context context, Intent intent) {//重写的响应方法 // TODO Auto-generated method stub int action = intent.getIntExtra("ACTION", -1);//得带需要的数据 switch(action){ case 1://播放或暂停声音 if(status == 1){//当前没有声音播放 mp = MediaPlayer.create(context, R.raw.nx); status = 2; Intent sendIntent = new Intent("wyf.ytl.update"); sendIntent.putExtra("update", 2); sendBroadcast(sendIntent); mp.start(); } else if(status == 2){//正在播放声音 mp.pause(); //停止 status = 3;//改变状态 Intent sendIntent = new Intent("wyf.ytl.update"); sendIntent.putExtra("update", 3);//存放数据 sendBroadcast(sendIntent);//发送广播 } else if(status == 3){//暂停中 mp.start();//播放声音 status = 2;//改变状态 Intent sendIntent = new Intent("wyf.ytl.update"); sendIntent.putExtra("update", 2);//存放数据 sendBroadcast(sendIntent);//发送广播 } break; case 2://停止声音 if(status == 2 || status == 3){//播放中或暂停中 mp.stop();//停止播放 status = 1;//改变状态 Intent sendIntent = new Intent("wyf.ytl.update"); sendIntent.putExtra("update", 1);//存放数据 sendBroadcast(sendIntent);//发送广播 } } } }
5.注册广播
serviceReceiver = new ServiceReceiver();//创建BroadcastReceiver IntentFilter filter = new IntentFilter();//创建过滤器 filter.addAction("wyf.ytl.control");//添加Action registerReceiver(serviceReceiver, filter);//注册BroadcastReceiver
此篇博客不完全