public class MainActivity extends AppCompatActivity { private Intent intent; private MyServiceConnection serviceConnection; private MusicService m_service; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); intent = new Intent(this,MusicService.class); serviceConnection = new MyServiceConnection(); } class MyServiceConnection implements ServiceConnection{ @Override public void onServiceConnected(ComponentName name, IBinder service) { //绑定成功。 MusicService.MyBinder binder = (MusicService.MyBinder) service; m_service = binder.getService(); } @Override public void onServiceDisconnected(ComponentName name) { } } @Override protected void onResume() { super.onResume(); //启动服务。 startService(intent); //绑定服务。 bindService(intent,serviceConnection,BIND_AUTO_CREATE); } @Override protected void onDestroy() { super.onDestroy(); unbindService(serviceConnection); } //播放 public void play(View view){ if(m_service!=null){ m_service.play(); } } //暂停 public void pause(View view){ if(m_service!=null){ m_service.pause(); } } }
public class MusicService extends Service { private MediaPlayer player;//播放器 class MyBinder extends Binder { public MusicService getService(){ return MusicService.this; } } @Override public IBinder onBind(Intent intent) { MyBinder binder = new MyBinder(); return binder; } @Override public void onCreate() { super.onCreate(); //创建播放器。 player = new MediaPlayer(); //绑定播放的音乐。 try { String path = Environment.getExternalStorageDirectory().getAbsolutePath() +"/"+Environment.DIRECTORY_MUSIC+ "/a.mp3"; Log.i("Main",path); player.setDataSource(path); player.prepare(); } catch (IOException e) { e.printStackTrace(); Log.i("Main", "出现异常"); } } @Override public int onStartCommand(Intent intent, int flags, int startId) { return super.onStartCommand(intent, flags, startId); } @Override public void onDestroy() { super.onDestroy(); } @Override public boolean onUnbind(Intent intent) { return super.onUnbind(intent); } //播放音乐 public void play() { if (!player.isPlaying()) player.start();; } //暂停 public void pause(){ if(player.isPlaying()){ player.pause(); } } }