1

我正在开发音乐播放器

逻辑是这样的:首先,我点击播放按钮,如果有音乐播放,则停止服务,否则,启动它。

播放/暂停按钮:

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();
}

问题是,如果音乐正在由其他应用程序播放,我的音乐播放器会崩溃。但我找不到任何方法来跟踪服务状态。例如,如果我播放音乐,关闭应用程序,音乐仍在播放,但是当我再次打开应用程序时,如何知道特定服务(播放仅由我的应用程序触发的音乐,在这种情况下)正在运行? 谢谢

4

0 回答 0