Я сделал небольшое приложение для тренировки воспроизведения звука в Android с помощью MediaPlayer, приложение прекрасно работает, но после нажатия кнопки воспроизведения есть небольшая задержка в 1 секунду, и это заметно, я заметил, что это происходит только при запуске аудио файла, когда пауза возобновляется немедленно без задержки, я гуглюсь и вижу, что люди предлагают использовать SoundPool вместо MediaPlayer, но SoundPool рекомендуется для коротких аудиоклипов, когда мое приложение воспроизводит полную песню, в чем причина этой задержки? Есть ли исправление или решение этой проблемы?
Вот мой код:
приватный MediaPlayer mMediaPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mMediaPlayer = MediaPlayer.create(this,R.raw.this_is_america);
Button btnPlay = findViewById(R.id.btnPlay);
Button btnPause = findViewById(R.id.btnPause);
Button btnStop = findViewById(R.id.btnStop);
btnPlay.setOnClickListener(this);
btnPause.setOnClickListener(this);
btnStop.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnPlay:
Toast.makeText(getApplicationContext(), "Playing song",
Toast.LENGTH_SHORT).show();
mMediaPlayer.start();
break;
case R.id.btnPause:
Toast.makeText(getApplicationContext(), "Pausing song",
Toast.LENGTH_SHORT).show();
mMediaPlayer.pause();
break;
case R.id.btnStop:
Toast.makeText(getApplicationContext(), "Song stopped",
Toast.LENGTH_SHORT).show();
mMediaPlayer.reset();
mMediaPlayer = MediaPlayer.create(this,R.raw.this_is_america);
break;
}
}
Обновление: оказалось, что аудиофайл mp3 вначале имел тихую паузу, попробовал другую песню, и она работает нормально, без заметных задержек, спасибо greeble31 за предложение проверить это.