Necesito reproducir transmisión de audio en vivo, en realidad es radio. El problema es que también necesito administrar un búfer de 20 minutos para la transmisión. Por lo que yo entiendo, no es fácil de implementar con Android.Buffer de transmisión de audio
Primero revisé MediaPlayer, pero no proporciona ningún método para la gestión de búfer. De hecho, incluso no puede establecer el tamaño del búfer directamente.
En segundo lugar, traté de administrar el búfer con los archivos locales: descargar progresivamente la secuencia a un archivo temporal y cambiarlos. Pero cuando quiere cambiar al siguiente archivo (cambiar el origen de datos en MediaPlayer), el audio no se reproduce continuamente. Puedes escuchar interrupciones cortas.
La última idea es usar el proxy de transmisión. Por lo general, se usa para reproducir secuencias en versiones de Android inferiores a 8. En el proxy de flujo, crea ServerSocket, lee de la transmisión de audio y escribe en el reproductor. Así que en realidad puedo administrar el almacenamiento en búfer allí. Puedo almacenar en caché y escribir en MediaPlayer lo que quiera. Pero. No funciona con Android 8.
Obtuve la excepción: Connection reset by peer java.net.SocketException: Connection reset by peer. MediaPlayer 8 no quiere leer datos del socket.
Por lo tanto, tengo dos preguntas: 1) ¿Qué otra manera de implementar almacenamiento en búfer de secuencia? 2) cómo adaptar StreamProxy para android 8?
Se aprecian todas las ideas.
Gracias
"2) cómo adaptar StreamProxy para android 8?" ... A menos que mostrar el código que está utilizando, es imposible que alguien pueda ayudar. – Squonk
¿Cómo está escribiendo stream en MediaPlayer? ¿Puede explicar un poco más? –