音频是否正在播放? (Android)
问题描述:
我在我的应用程序中有两个活动。第一个(MainActivity.java)有一个按钮来调用活动二(Player.java),第二个有音频和一个停止按钮。音频是否正在播放? (Android)
我现在面临的主要问题是:
当我点击从一开始第二个活动,它进入另一个活动。 当我编程时,它会自动启动音频(我希望它自动启动)。我按停止音频停止。然后再回到MainActivity
再次调用第二个activity(Player.java)它可以正常工作。它再次正确启动音频。当我按下音频继续播放时,一切正常。 (这就是我想要的)。
但是,如果按回不停止音频,并启动第二活动(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);
}
}
}
}
Player.java
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()方法当用户按下后退按钮时。播放音频是一项独立于您的活动生命周期的系统服务。
所以,你的活动接近停止音频并在重新启动时,再次发挥。