Java 正在播放音频吗?(安卓)

Java 正在播放音频吗?(安卓),java,android,android-studio,android-activity,Java,Android,Android Studio,Android Activity,我的应用程序中有两个活动。第一个(MainActivity.java)有一个调用活动二(Player.java)的按钮,第二个有音频和一个停止按钮 我面临的主要问题是: 当我从一个活动中单击“开始第二个活动”时,它将转到另一个活动。 当我编程时,它会自动启动音频(我希望它能自动启动)。我按停止音频停止。然后再回到MainActivitycallsecondactivity(Player.java),它工作正常。它再次正确启动音频。当我按下返回键时,一切正常,音频一直播放。(这就是我想要的) 但是

我的应用程序中有两个活动。第一个(MainActivity.java)有一个调用活动二(Player.java)的按钮,第二个有音频和一个停止按钮

我面临的主要问题是:

当我从一个活动中单击“开始第二个活动”时,它将转到另一个活动。 当我编程时,它会自动启动音频(我希望它能自动启动)。我按停止音频停止。然后再回到
MainActivity
callsecondactivity(Player.java),它工作正常。它再次正确启动音频。当我按下返回键时,一切正常,音频一直播放。(这就是我想要的)

但是,如果在不停止音频的情况下按back,并再次启动第二个活动(Player.java),则会在不停止第一个活动的情况下再次启动音频。同一曲目播放两次

我想一次只演奏一首曲子。如果正在播放任何其他音频,请在我再次开始该活动时停止播放

这是我的密码:

MainActivity.java

package com.test.myapp;

import android.app.*;
import android.os.*;
import android.content.*;
import android.widget.*;
import android.view.*;

public class MainActivity extends Activity {
  Button btn;

    @Override
    public void onCreate(Bundle savedIntanceState) {
        super.onCreate(savedIntanceState);
        setContentView(R.layout.activity_main);

        btn = (Button) findViewById(R.id.button);

        public void clicked(View v){
            if (v.getId() == R.id.button){
              Intent i = new Intent (MainActivity.this, player.class);
              startActivity(i);
            }
        }
    }
}
package com.test.myapp;

import android.app.*;
import android.os.*;
import android.content.*;
import android.widget.*;
import android.view.*;
import android.media.*;

public class player extends Activity {
  Button stop;
  MediaPlayer audio;

    @Override
    public void onCreate(Bundle savedIntanceState) {
        super.onCreate(savedIntanceState);
        setContentView(R.layout.player);

        stop= (Button) findViewById(R.id.stop);
        audio = MediaPlayer.create(getBaseContext(), R.raw.myAudio);
        audio.start();

        public void stop(View v){
            if (v.getId() == R.id.stop){
                audio.stop();
                audio = MediaPlayer.create(getBaseContext(), R.raw.myAudio);
            }
        }
    }
}
Player.java

package com.test.myapp;

import android.app.*;
import android.os.*;
import android.content.*;
import android.widget.*;
import android.view.*;

public class MainActivity extends Activity {
  Button btn;

    @Override
    public void onCreate(Bundle savedIntanceState) {
        super.onCreate(savedIntanceState);
        setContentView(R.layout.activity_main);

        btn = (Button) findViewById(R.id.button);

        public void clicked(View v){
            if (v.getId() == R.id.button){
              Intent i = new Intent (MainActivity.this, player.class);
              startActivity(i);
            }
        }
    }
}
package com.test.myapp;

import android.app.*;
import android.os.*;
import android.content.*;
import android.widget.*;
import android.view.*;
import android.media.*;

public class player extends Activity {
  Button stop;
  MediaPlayer audio;

    @Override
    public void onCreate(Bundle savedIntanceState) {
        super.onCreate(savedIntanceState);
        setContentView(R.layout.player);

        stop= (Button) findViewById(R.id.stop);
        audio = MediaPlayer.create(getBaseContext(), R.raw.myAudio);
        audio.start();

        public void stop(View v){
            if (v.getId() == R.id.stop){
                audio.stop();
                audio = MediaPlayer.create(getBaseContext(), R.raw.myAudio);
            }
        }
    }
}

当用户按下后退按钮时,您应该在播放器活动onPause()中调用audio.stop。播放音频是一项独立于您的活动生命周期的系统服务

因此,您的活动接近停止音频,并在音频再次启动时再次播放