Pregunta

A veces obtengo ilegalStateException lanzado por MediaPlayer.seekto (int) El MediaPlayer se ejecuta en un servicio, y una llamada The Seekto (int) como esta:

public void seekTo(int value)
{
if (mp != null && !(value <= -1)) {
mp.seekTo(value);
}
}
¿Fue útil?

Solución

IllegalStateException se lanza para evitar errores de programación como llamar prepare(), prepareAsync(), o uno de los sobrecargados setDataSource métodos en un estado no válido.

Un IllegalStateException se tira si prepare() o prepareAsync() se llama en cualquier otro estado.

Aunque el asincrónico seekTo(int) Si la llamada regresa de la manera correcta, la operación de búsqueda real puede tardar un poco en finalizar, especialmente para la transmisión de audio/vídeo.Cuando se completa la operación de búsqueda real, el motor del reproductor interno llama a un usuario proporcionado OnSeekComplete.onSeekComplete() Si una OnSeekCompleteListener ha sido registrado previamente mediante setOnSeekCompleteListener(OnSeekCompleteListener).Tenga en cuenta que seekTo(int) También se puede llamar en otros estados, como Prepared, Paused y PlaybackCompleted estado.

Todos estos datos están cubiertos aquí: http://developer.android.com/reference/android/media/MediaPlayer.htmlDe hecho lo cité directamente.

Debería poder manejar cualquier error encontrado utilizando un OnErrorListener().

Puedes encontrar más sobre un OnErrorListener() aquí:

http://developer.android.com/reference/android/media/MediaPlayer.OnErrorListener.html

En el detector de errores podrás:

  1. Recibe el error.
  2. Determinar el tipo de error.
  3. Maneje el error para rectificar la situación sin fallar.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top