Reproductor de medios de Android: descargue a archivo y secuencia de archivo
Estoy usando MediaPlayer
de Android para reproducir archivos MP3 que se descargan simultáneamente desde Internet usando el DownloadManager
. Estoy al tanto de la capacidad de MediaPlayer
para transmitir directamente, pero no quiero usar eso:
La ventaja obvia que se obtiene al descargar y simultáneamente la transmisión desde el archivo es que de esta manera, el archivo se almacena y está disponible localmente después.
- Crear una aplicación de transmisión en tiempo real para Android
- Reproducción de vídeo desde el directorio caché de la aplicación
- Convertir secuencias de entrada de vídeo a RTMP
- Video Streaming y Android
- reproducir streaming en VideoView, convertir url a rtsp
- Esto funciona en principio – el
MediaPlayer
comienza a reproducir el archivo, incluso si no se descarga por completo. (BTW mi problema no es que no puedo conseguirMediaPlayer
para jugar.) - El problema es que cuando el
MediaPlayer
llega a la posición donde el estado de descarga era justo cuando comenzó a jugar, se detiene y llama aonCompletion
. (Aclaración: Supongamos que el archivo se descarga al 12% cuando empiezo a jugar.) Cuando el jugador llega a la posición al 12%, se detiene.) - Nota lateral rápida:
OnBufferingUpdateListener.onBufferingUpdate(...)
no se llama cuando se agrega algo al archivo MP3 a través delDownloadManager
.
Así que la pregunta es: ¿Cómo puedo descargar simultáneamente un archivo de audio al sistema de archivos y reproducirlo? (Android 4 + es suficiente, si eso hace una diferencia.)
- Integración de VLC o cualquier otro reproductor de video de terceros en la aplicación para Android
- Problema de MediaRecorder en Android Lollipop
- Reproductor multimedia android muestra audio pero no video
- Cómo transmitir a través de mms: //
- URL del stream de Media Player y, a continuación, reproducir url siguiente
- ¿Existe una mejor manera de guardar archivos de streaming con MediaPlayer?
- Android Streaming Wav Error de audio: Preparación de MediaPlayer: status = 0x1
- Cómo vivir la transmisión desde Android
Supongo que está apuntando MediaPlayer al archivo. En ese caso, no creo que admita la transmisión, y probablemente comprueba el tamaño del archivo y de antemano, por lo que no se actualizará como más del archivo entra en.
Tienes que apuntarlo a un contenido que funcione con streaming, por ejemplo HTTP. Acabo de ver cómo funciona "ES File Explorer" (con LogCat) – al hacer clic en un archivo de vídeo en un archivo compartido, abre un servidor HTTP local y envía al MediaPlayer un Uri HTTP a su servidor local , Que también incluye la ruta remota.
Cuando recibe la solicitud a través de HTTP, el servidor local empieza a leer el archivo desde la ubicación remota y lo proporciona localmente a MediaPlayer a través de HTTP. Usted probablemente puede hacer lo mismo, y además de proporcionarlo a través de HTTP también guardarlo en el disco.
Me ayudó, espero ayudar a alguien más.
Reproductor de descargar y reproducir música.
mMediaPlayer.setDataSource(DOWNLOAD_URL); File root = Environment.getExternalStorageDirectory(); File dir = new File(root + "/Folder"); if (!dir.exists()) { dir.mkdirs(); DownloadManager downloadManager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE); Uri downloadUri = Uri.parse(DOWNLOAD_URL); DownloadManager.Request request = new DownloadManager.Request(downloadUri); request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_MOBILE | DownloadManager.Request.NETWORK_WIFI); request.setAllowedOverRoaming(false); request.setTitle(TITLE); request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); request.setDestinationInExternalPublicDir(Environment.DIRECTORY_MUSIC, TITLE); request.allowScanningByMediaScanner();
Después de descargar el archivo:
mMediaPlayer.setDataSource(Environment.getExternalStorageDirectory() + "/Folder/" + TITLE + ".mp3");
- En Android M, ¿cómo configurar las capacidades de "compartir directamente" (imagen, texto) y cómo consultar los elementos?
- ¿Puedo usar d3.js para crear visualizaciones interactivas dentro de una aplicación para Android?