我正在开发音乐播放器
逻辑是这样的:首先,我点击播放按钮,如果有音乐播放,则停止服务,否则,启动它。
播放/暂停按钮:
playM.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
AudioManager manager = (AudioManager)getContext().getSystemService(Context.AUDIO_SERVICE);
if (!manager.isMusicActive()) {
playM.setText("Pause");
Intent svc=new Intent(getContext(), Music.class);
svc.putExtra("uri", tt1.getText().toString());
getContext().startService(svc);
} else {
playM.setText("Play");
//if (mPlayer != null && mPlayer.isPlaying()) {
Intent svc=new Intent(getContext(), Music.class);
getContext().stopService(svc);
//}
}
}
});
服务:
public int onStartCommand(Intent intent, int flags, int startId) {
path = (String) intent.getExtras().get("uri");
Uri uriMusic = Uri.parse(path);
player = MediaPlayer.create(this, uriMusic);
player.start();
player.setLooping(true); // Set looping
return 1;
}
@Override
public void onDestroy() {
player.stop();
player.release();
}
问题是,如果音乐正在由其他应用程序播放,我的音乐播放器会崩溃。但我找不到任何方法来跟踪服务状态。例如,如果我播放音乐,关闭应用程序,音乐仍在播放,但是当我再次打开应用程序时,如何知道特定服务(播放仅由我的应用程序触发的音乐,在这种情况下)正在运行? 谢谢