简单Service后台音乐播放

来源:互联网 发布:网上商城界面源码jsp 编辑:程序博客网 时间:2024/05/20 06:23
public class MainActivity extends Activity {private MyConnection conn;private MyPlayMusicService playMusicService;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);conn = new MyConnection();}// 点击button播放音乐public void startMusic(View view) {if (playMusicService == null) {Intent intent = new Intent(MainActivity.this, MyPlayMusicService.class);// 以绑定的形式开启服务bindService(intent, conn, Context.BIND_AUTO_CREATE);} else {// 播放音乐playMusicService.startMusic();}}// 点击button暂停播放public void pauseMusic(View view) {if (playMusicService != null) {playMusicService.pauseMusic();}}// 点击button停止播放音乐public void stopMusic(View view) {if(playMusicService != null){playMusicService.stopMusic();unbindService(conn);}}public class MyConnection implements ServiceConnection {@Overridepublic void onServiceConnected(ComponentName name, IBinder service) {MyBinder myBinder = (MyBinder) service;playMusicService = myBinder.getService();}@Overridepublic void onServiceDisconnected(ComponentName name) {}}}

public class MyPlayMusicService extends Service {//操作音频的媒体对象private MediaPlayer mediaPlayer;private int position = 0;//当前播放的位置@Overridepublic void onCreate() {super.onCreate();//初始化Mediaplayerif(mediaPlayer == null){//根据特定的资源创建MediaPlayer对象mediaPlayer = MediaPlayer.create(MyPlayMusicService.this, R.raw.heavencity);}}@Overridepublic IBinder onBind(Intent intent) {//绑定之后直接播放startMusic();return new MyBinder();}//开始播放音频public void startMusic(){if(mediaPlayer != null && !mediaPlayer.isPlaying()){try {if(position == 0){mediaPlayer.stop();//在播放之前调用mediaPlayer.prepare();mediaPlayer.start();}else{//根据指定的位置播放mediaPlayer.seekTo(position);mediaPlayer.start();}}catch (Exception e) {e.printStackTrace();}}}//暂停播放public void pauseMusic(){if(mediaPlayer != null && mediaPlayer.isPlaying()){//暂停播放mediaPlayer.pause();//记录当前播放的位置position = mediaPlayer.getCurrentPosition();}}//停止播放public void stopMusic(){if(mediaPlayer != null){//停止播放mediaPlayer.stop();//释放资源mediaPlayer.release();}}public class MyBinder extends Binder{public MyPlayMusicService getService(){return MyPlayMusicService.this;}}}

0 0
原创粉丝点击