我的应用中有两项活动。第一个(MainActivity.java)有一个按钮来调用活动二(Player.java),第二个有一个音频和一个停止按钮。
我面临的主要问题是:
当我从一个单击开始第二个活动时,它会转到另一个活动。
在编程时,它会自动启动音频(我希望它自动启动)。我按停止音频停止。然后回到MainActivity
再次调用第二个活动(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);
}
}
}
}
答案 0 :(得分:0)
当用户按下后退按钮时,您应该在播放器活动onPause()方法中调用audio.stop。播放音频是一种独立于您的活动生命周期的系统服务。
因此,您的活动会立即关闭音频,并在重新启动时再次播放。