Я создаю приложение, и в одном макете (просто называйте его макетом A), я играю медиаплеер, а затем, когда я перешел на другой макет (просто назовите его Layout B), я хочу, чтобы звук из макета A продолжается в макете B, и когда я вернулся к макету A, я также хочу, чтобы медиаплеер продолжал воспроизведение музыки, которая была воспроизведена ранее.два медиаплеера сразу сыграли
В Layout А, я установить этот код в OnCreate:
player = MediaPlayer.create(this, R.raw.sound);
if(!isMuted())
{
player.setLooping(true);
player.start();
}
...
btn.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View arg0)
{
// TODO Auto-generated method stub
Intent intent = new Intent(A.this, B.class);
stop=1;
startActivity(intent);
}
});
и этот код:
@Override
protected void onPause()
{
super.onPause();
if (stop!=1)
{
//stop=1 if i go to another layout, for example when i want to go to Layout B
//if the device is automatically locked, i want the media player is paused and it resumed when i unlock the device, so i use stop!=1 to know whether the sound should be paused or not
player.pause();
length = player.getCurrentPosition();
}
}
@Override
protected void onResume()
{
super.onResume();
if(!isMuted())
{
//isMuted is method to know whether the sound is muted or not, if it isn't muted, then the sound is resumed
player.seekTo(length);
player.setLooping(true);
player.start();
}
}
В макет B, я использовал этот код в OnCreate:
player = MediaPlayer.create(this, R.raw.sound);
....
И этот код:
protected void onPause()
{
super.onPause();
player.pause();
length = player.getCurrentPosition();
}
@Override
protected void onResume()
{
super.onResume();
if(!isMuted())
{
if(player.isPlaying())
{
}
else
{
player.seekTo(length);
player.setLooping(true);
player.start();
}
}
}
Но это проблема.
Когда я пошел в Layout B, медиа-плеер от формата А и Media Player от макета B играет в то же время, так что звук воспроизводится одновременно в одно время.
Когда я вернулся к макету A, Media Player в макете B остановлен, а Media Player в макете A остановлен и снова воспроизведен с начала, он не продолжал воспроизведение медиа-проигрывателя, который был воспроизведен до ,
Когда устройство заблокировано, медиаплеер все еще воспроизводится, хотя я использовал индикатор, должен ли он быть приостановлен или нет. Любая коррекция кода?