Java 当应用程序处于后台时,如何在BaseActivity中使用onPause停止音乐(MediaPlayer)
我可以和这个班一起演奏音乐Java 当应用程序处于后台时,如何在BaseActivity中使用onPause停止音乐(MediaPlayer),java,android,android-activity,android-music-player,onpause,Java,Android,Android Activity,Android Music Player,Onpause,我可以和这个班一起演奏音乐 public class MusicPlayer extends AppCompatActivity { MediaPlayer player; public void play(Context c, @RawRes int sound){ if (player == null){ player = MediaPlayer.create(c, sound); } player.
public class MusicPlayer extends AppCompatActivity {
MediaPlayer player;
public void play(Context c, @RawRes int sound){
if (player == null){
player = MediaPlayer.create(c, sound);
}
player.start();
}
所以我的活动可以通过这个onCreate播放音乐
private MusicPlayer playboy = new MusicPlayer();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
playboy.play(this, R.raw.song);
}
它工作正常,但当我的应用程序在后台时,它仍然可以继续播放。。。
我知道如何停止和暂停,但我如何不在活动中,而是在所有活动的基本活动中执行此操作?
我的基本活动如下所示
public class BaseActivity extends AppCompatActivity {
MediaPlayer player;
@Override
protected void onPause() {
super.onPause();
if (player != null) {
player.pause();
}
}
public class MusicPlayer extends AppCompatActivity {
@Override
protected void onPause() {
super.onPause();
// pause media player in onPause
if (player != null) {
player.pause();
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// play song in oncreate()
player.play(this, R.raw.song);
}
}
我的活动扩展了基本活动
但音乐仍在后台播放…您需要在基本活动中像这样初始化媒体播放器
public class BaseActivity extends AppCompatActivity {
MediaPlayer player;
public void play(Context c, @RawRes int sound){
if (player == null){
player = MediaPlayer.create(c, sound);
}
player.start();
}
}
现在你的音乐活动应该是这样的
public class BaseActivity extends AppCompatActivity {
MediaPlayer player;
@Override
protected void onPause() {
super.onPause();
if (player != null) {
player.pause();
}
}
public class MusicPlayer extends AppCompatActivity {
@Override
protected void onPause() {
super.onPause();
// pause media player in onPause
if (player != null) {
player.pause();
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// play song in oncreate()
player.play(this, R.raw.song);
}
}