I write an extra class like bellow to "control" music from different Activities. It should keep playing when I switch from Activity 1 to Activity 2. But it stops even when I call backgroundmusik.start(); again in my second Activity :
public class Music {
public static MediaPlayer backgroundmusik;
public static int pausedSaver;
public static void playAudio(Context c, int id){
backgroundmusik = MediaPlayer.create(c, id);
backgroundmusik.setLooping(true);
backgroundmusik.start();
}
public static void playFrom() {
if(!backgroundmusik.isPlaying()) {
backgroundmusik.seekTo(pausedSaver);
backgroundmusik.setLooping(true);
backgroundmusik.start();
}
}
public static void playPause()
{
backgroundmusik.pause();
pausedSaver = backgroundmusik.getCurrentPosition();
}
public static void stopAudio(){
if(backgroundmusik.isPlaying()) {
backgroundmusik.stop();
}
}
}
First Activity:
public class WelcomeActivity extends AppCompatActivity{
Music musicPlayer;
int previous;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.welcome_layout);
musicPlayer.playAudio(this,R.raw.dingdong);
Intent intent3 = new Intent(getApplicationContext(), Main.class);
startActivity(intent3);
finish();
}
}
@Override
protected void onRestart() {
super.onRestart();
musicPlayer.playFrom();
}
@Override
protected void onStart() {
super.onStart();
musicPlayer.playFrom();
}
@Override
protected void onResume() {
super.onResume();
musicPlayer.playFrom();
}
@Override
protected void onPause() {
super.onPause();
musicPlayer.playPause();
}
@Override
protected void onStop() {
super.onStop();
musicPlayer.playPause();
}
@Override
protected void onDestroy() {
super.onDestroy();
musicPlayer.stopAudio();
}
}
Second Activity:
public class Main extends AppCompatActivity{
Music musicPlayer;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);
}
}
Thanks for your help.