自己的音乐播放器

来源:互联网 发布:淘宝摄影师 编辑:程序博客网 时间:2024/06/11 02:00

1main.clss

public class MainActivity extends Activity implements OnClickListener {private Button startMusic;private Button stopMusic;private Intent intent;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);startMusic=(Button)this.findViewById(R.id.startMusic);stopMusic=(Button)this.findViewById(R.id.stopMusic);startMusic.setOnClickListener(this);stopMusic.setOnClickListener(this);IntentFilter filter=new IntentFilter("musicbroadcast");registerReceiver(updateUIreceiver, filter);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.startMusic:  //播放音乐//开启音乐播放服务intent=new Intent(MainActivity.this,MusicService.class);Bundle bundle=new Bundle();bundle.putString("path", "/sdcard/music.mp3");bundle.putString("cmd", "musicbroadcast");intent.putExtras(bundle);startService(intent);break;case R.id.stopMusic:  //停止播放if(intent!=null){stopService(intent);}break;default:break;}}@Overrideprotected void onDestroy() {super.onDestroy();unregisterReceiver(updateUIreceiver);}//广播接收器private BroadcastReceiver updateUIreceiver=new BroadcastReceiver(){@Overridepublic void onReceive(Context context, Intent intent) {//得到广播发来的值,0表示是播放 1表示的是暂停 2是停止int backFlag=intent.getExtras().getInt("backFlag");switch (backFlag) {case 0:startMusic.setText("暂停");break;case 1:case 2:startMusic.setText("播放");break;default:break;}}};}

2 service

public class MusicService extends Service {private String path;private String cmd;private MediaPlayer mediaPlayer;@Overridepublic IBinder onBind(Intent intent) {// TODO Auto-generated method stubreturn null;}@Overridepublic void onCreate() {super.onCreate();System.out.println("服务oncreate");}@Overridepublic void onStart(Intent intent, int startId) {super.onStart(intent, startId);path=intent.getExtras().getString("path");cmd=intent.getExtras().getString("cmd");//1 正在播放if(mediaPlayer!=null&&mediaPlayer.isPlaying()){mediaPlayer.pause();sendupdateUI(1);  //更新界面}//暂停else{if(mediaPlayer==null){mediaPlayer=new MediaPlayer();try{mediaPlayer.setDataSource(path);mediaPlayer.prepare();}catch(Exception e){e.printStackTrace();}}mediaPlayer.start();sendupdateUI(0);//更新界面}}@Overridepublic void onDestroy() {if(mediaPlayer!=null){mediaPlayer.release();  sendupdateUI(2);}super.onDestroy();}//发送广播private void sendupdateUI(int flag) {Intent intent = new Intent(cmd);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);Bundle bundle=new Bundle();bundle.putInt("backFlag", flag);intent.putExtras(bundle);sendBroadcast(intent);}}


0 0
原创粉丝点击