Часть программы - это серия звуков, которые воспроизводятся в следующем порядке:
. Иногда возникает проблема, связанная с тем, что она отклоняется, например, если она загружается поздно и быстро отклоняется, следующий звук воспроизводится и иногда случается так, что он быстро отбрасывает десять подряд и разыгрывается 11-е.
Дайте мне решение о том, как предотвратить его отклонение, и оставайтесь, пока он не выйдет в воздух после того, как следующий ягненок будет закончен.
Эта часть используется для приема и воспроизведения. При возникновении проблемы этот раздел быстро пройдет и будет откалиброван следующий звук. Иногда, например, их два или три, иногда больше, иногда первый воспроизводится правильно.
private class mp3Play extends AsyncTask<String, Void, Boolean> {
@Override
protected void onPreExecute() {
loading.setVisibility(View.VISIBLE);
}
@Override
protected Boolean doInBackground(String... params) {
Boolean prepared;
try {
mediaPlayer.reset();
mediaPlayer.setDataSource(params[0]);
mediaPlayer.prepare();
prepared = true;
} catch (Exception e) {
Log.e("Audio Streaming", e.toString());
prepared = false;
loading.setVisibility(View.GONE);
}
return prepared;
}
@Override
protected void onPostExecute(Boolean aBoolean) {
if (aBoolean) {
loading.setVisibility(View.GONE);
mediaPlayer.start();
initialStage = false;
playPause = true;
btn_play_pause.setImageResource(R.drawable.ic_pause);
mediaFileLength = mediaPlayer.getDuration();
seekbarUpdate();
}
}
}
и
private boolean playSound(String link) {
if (!isNetworkAvailable()) {
dlgAlert.create().show();
return true;
} else {
if (link != null) {
if (!link.isEmpty()) {
new mp3Play().execute(link);
return true;
} else {
Toast.makeText(activity.this, "No sound", Toast.LENGTH_SHORT).show();
return false;
}
} else {
Toast.makeText(activity.this, "No sound", Toast.LENGTH_SHORT).show();
return false;
}
}
}
Размер файлов небольшой и существует нет проблем с inte rnet и он не go внутри catch.