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
此篇博客不完全

浙公网安备 33010602011771号