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