2016-12-23 4 views
0

Es gibt viele Aktivitäten in meiner App, und ich möchte, dass Musik im Hintergrund unabhängig spielt, sogar während der Aktivitäten wechseln. Wenn ich zu einer anderen Aktivität wechsle, stoppt die Musik für eine Weile und beginnt dann von Anfang an. Wie kann man Musik selbständig im Hintergrund spielen lassen?Keine sanfte Musik während Aktivitäten wechseln

Mein Code:

public class StartMusic extends AppCompatActivity { 

    MediaPlayer player; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     player = MediaPlayer.create(this, R.raw.musicname); 
     player.setLooping(true); 
     player.start(); 
    } 

    protected void onDestroy() { 
     //other codes 
     super.onDestroy(); 
     player.stop(); 
    } 

    protected void onStop() { 
     super.onStop(); 
     player.pause(); 
    } 

    protected void onResume() { 
     super.onResume(); 
     player.start(); 
    } 


} 

Dann erweitere ich diese Akivität in weiteren Aktivitäten:

public class OpenerPlay extends StartMusic { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_opener_play); 

     String uripath = "android.resource://com.example.android.appname/" + R.raw.musicname; 

     VideoView videoView = (VideoView) findViewById(R.id.id); 
     Uri uri = Uri.parse(uripath); 
     videoView.setVideoURI(uri); 
     videoView.requestFocus(); 
     videoView.start(); 
     videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
      @Override 
      public void onPrepared(MediaPlayer mp) { 
       mp.setLooping(true); 
      } 
     }); 

     final Intent intent = new Intent (this, MainActivity.class); 
     final TextView button = (TextView) findViewById(R.id.bunton); 
     button.setOnTouchListener(new View.OnTouchListener() { 

      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       startActivity(intent); 
       switch (event.getAction()) { 
        case MotionEvent.ACTION_DOWN: 


        return true; 

        case MotionEvent.ACTION_UP: 

        return true; 
       } 
       return true; 

      }; 

     }); 
    } 

} 
+0

Service verwenden, um die Musik zu starten. – Spartan

Antwort

1

ein Service Verwenden Sie Ihre Musik zu spielen. Mehr über Services kann here

Danach finden Sie können auch Ihre Service in einem anderen Prozess ausgeführt werden, die mehr Speicher zur Verfügung, die Ergebnisse in, aber es hängt von Ihrem Fall, wenn dies erforderlich ist oder nicht. Mehr über Prozesse finden Sie here

Verwandte Themen