如何阻止媒体播放器自己播放?

时间:2017-04-20 18:38:44

标签: android audio android-activity android-mediaplayer media

我有一个应用程序,用户可以在其中点击一个按钮并开始收听一个给定的曲目(它只是整个专辑的一个长曲目,它们只能播放和暂停)。

问题在于,如果你开始播放音乐,转到第二个活动,然后返回主页,你现在可以选择按音乐播放(即使它仍在播放)。然后按下播放时,它会再次启动曲目,位于正在播放的曲目的顶部。

为了澄清,我希望音乐可以播放所有活动,但是当你回到主页时,我希望媒体播放器意识到它仍在播放音轨并允许用户暂停/播放愿望。

以下是第一项活动的代码,第二项活动是“幕后花絮”:

package alexgreene.byprocessofimagination;

import android.app.Activity;
import android.app.AlarmManager;
import android.app.Dialog;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.ImageButton;
import android.widget.ImageView;

import java.io.IOException;

import static alexgreene.byprocessofimagination.R.layout.activity_main;

public class MainActivity extends Activity {

    MediaPlayer mp;
    ImageButton play, bts, readMore;
    int startTime = 4250;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(activity_main);

        play = (ImageButton) findViewById(R.id.bPlay);
        readMore = (ImageButton) findViewById(R.id.ibReadMore);
        bts = (ImageButton) findViewById(R.id.ibBackgroundFalling);

        mp = MediaPlayer.create(MainActivity.this, R.raw.eusa);
        mp.seekTo(startTime);

        bts.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {


                Intent i = new Intent(MainActivity.this,     BehindTheScenes.class);
                startActivity(i);

            }
        });

        play.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {

                if (mp.isPlaying()) {
                    mp.pause();
                    play.setBackgroundResource(R.drawable.play_headphones);
                } else {
                    play.setBackgroundResource(R.drawable.pause_headphones);
                    mp.start();
                }
            }
        });

        readMore.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {

                Dialog settingsDialog = new Dialog(MainActivity.this);
                    settingsDialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
                    settingsDialog.setContentView(getLayoutInflater().inflate(R.layout.popup,     null));
                settingsDialog.show();

            }

        });

    }
}

1 个答案:

答案 0 :(得分:0)

您需要使用服务而不是活动来播放媒体。

关注此https://developer.android.com/guide/components/services.html了解详细信息