Comportamiento de pausa de MediaPlayer ()
Estoy usando un MediaPlayer
para transmitir audio desde una URL.
De acuerdo con la documentación, la llamada a la pause
MediaPlayer
seguida de una play
se reanudará desde el punto en que se hizo una pausa.
- Java.lang.IllegalStateException en el método MediaPlayer.isplaying ()
- Media Session Compat no muestra controles Lockscreen en Pre-Lollipop
- Android mediaPlayer seekTo no funciona cuando se detiene
- MediaPlayer.create () devuelve siempre null
- ¿Cómo filtrar sólo los archivos multimedia relevantes en Android?
Me pregunto cómo funciona esto con un flujo de audio en vivo. Cuando llamo a la pause
es el MediaPlayer
creación de algún tipo de búfer de todos los datos entrantes, y el almacenamiento hasta que yo llame a play
nuevo?
Si esto es realmente el caso, ¿hay un tamaño máximo en este búfer? Estoy preocupado sobre todo por un usuario pausando el MediaPlayer
y usando una gran cantidad de memoria mientras almacena los datos de audio entrantes.
- ¿Cómo evitar que VideoView / MediaPlayer detenga el audio de otras aplicaciones?
- No puedo reproducir video mp4 en mi aplicación para Android
- Android: Media Player Duración Edición
- MediaPlayer: No se pudo abrir el archivo en el lado del cliente; Error (-38,0) y más
- Analizar y reproducir un archivo .pls en Android
- Android: MediaPlayer finalizado sin ser lanzado
- Android MediaPlayer.getCurrentPosition () devuelve valores incorrectos
- Native_window_api_connect devolvió un error: argumento no válido (-22)
Como, entiendo que está utilizando Mediaplayer para la transmisión de audio de una URL .. algo así como los canales de radio. En este proceso, está utilizando buffers. Por lo tanto, el comportamiento que está recibiendo es bastante obvio. Cuando se detiene, los datos continúan almacenándose y al reanudar el flujo, comenzará desde el punto en que se detuvo.
Sin embargo, el streaming no debe comportarse de esta manera a diferencia del audio almacenado que comienza desde el punto en que se pausó. Streaming de audio siempre debe comenzar desde la transmisión en vivo en ese momento. Por lo tanto, onPause, debe liberar los búferes. Cuando el usuario reanuda la sesión de nuevo, puede reiniciar el flujo de la manera que lo hizo por primera vez. Así es como debe ser el comportamiento.
Si echa un vistazo, la transmisión de radio normal se implementa en la mayoría de las aplicaciones de streaming de radio.
- Navigator.geolocation.getCurrentPosition siempre obtiene un código de error 3: timeout expirado
- ¿Cómo detectar HTC Sense?