2016-12-23 10 views
0

私のアプリには多くのアクティビティがあり、音楽をバックグラウンドで独立して再生したいと思っています。 Currenly他のアクティビティに切り替えると、しばらくの間音楽が止まり、最初から音楽が始まります。 バックグラウンドで独立して音楽を演奏するには?アクティビティの切り替え中にスムーズな音楽がない

私のコードは:

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(); 
    } 


} 

は、その後、私は別の活動でこのacivityを拡張:

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

サービスを利用して音楽を始めることができます。 – Spartan

答えて

1

は、あなたの音楽を再生するServiceを使用してください。 Servicesの詳細は、その後、あなたも実行することができます

hereを見つけることができますServiceより多くのメモリが利用可能になるになり、異なるプロセス、で、それが必要だかどうそれはあなたのケースによって異なります。プロセスについてもっと知ることができますhere

関連する問題