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;
};
});
}
}
サービスを利用して音楽を始めることができます。 – Spartan