Streaming avec Android MediaPlayer - la capture des erreurs et de mise en mémoire tampon
Je vais avoir de la difficulté à obtenir MediaPlayer
résistants lors de la diffusion à partir d'une URL HTTP.
Si je commence la lecture du fichier, mais ensuite la baisse de la connexion (par exemple, en mode avion), MediaPlayer#OnErrorListener
génère what=1, extra=-17
puis, peu après,what=-38, extra=0
.
Il n'y a pas de documentation, je peux le voir dans l'Api de ce que l'on désigne sous ce nom, à l'exception supplémentaire est Généralement mise en œuvre à charge". Je suis sur un HTC Hero (bon, c'est T-Mobile au royaume-UNI G2 Touch).
Faire d'autres gens à obtenir les mêmes valeurs et est-il sûr d'attraper ces valeurs comme le sens de la connexion disparu?
Comment puis-je mieux de la reprise lorsque la connexion réapparaît? (enregistrez le courant chercher de préférences, et renouvelez toutes les 5 secondes?)
Comment puis-je savoir lorsque l'appareil a décidé de commencer à jouer ce qu'elle a été mise en tampon est-il un rappel (autre que d'interrogation isPlaying()
)?
En outre, je ne suis pas entièrement sûr de ce onBufferingUpdate
fournit. Je suis l'aide de 40 minutes de podcast MP3 (64kbps bitrate)
- tampon va 1%, 2%, 3%. Quand je cherche à environ 30 minutes, il montre de 75%, alors quand je cherche de nouveau au début de retour à 5% - ce qui est le point de ce rappel à l'autre que de montrer environ ce qui est mis en cache?
Enfin - est-il possible de tuyau ce qui est transmis à un MP3
?
Salut, j'ai le même problème, besoin de reprendre le streaming lorsque la connexion réapparaît. S'il vous plaît aider moi. Je suis à la lutte avec cela beaucoup de jours.
OriginalL'auteur Chris | 2010-01-09
Vous devez vous connecter pour publier un commentaire.
Prises de Semblable ce Débordement de pile Question
Moi aussi je suis déçu de la MEDIA_INFO_BUFFERING_START et MEDIA_INFO_BUFFERING_END crochets... la poisse.
OriginalL'auteur Lysogen
Il est possible de le faire
MediaPlayer a des méthodes pour enregistrer un OnPreparedListener et un OnBufferingUpdateListener
onPrepared sera appelée une fois que le joueur a mis en mémoire tampon suffisant pour commencer à jouer.
http://developer.android.com/reference/android/media/MediaPlayer.OnPreparedListener.html
onBufferingUpdate seront appelés à vous mettre à jour sur la mise en mémoire tampon de l'information.
http://developer.android.com/reference/android/media/MediaPlayer.OnBufferingUpdateListener.html
Vous devez également utiliser le service de Connectivité pour écouter la connectivité réseau
OriginalL'auteur JeffG
Je pense que vous devriez listne en cas de perte/gain de réseau.
Jetez un oeil à: Détecter les réseaux 3G ou Wifi Réseau de restauration
OriginalL'auteur Fernwilter
Lorsque vous chercher ou de les ignorer ou de perte de la connexion et MediaPlayer garde reconnecter au serveur proxy, vous devez envoyer cette réponse avec le Statut de 206 après que vous obtenez la demande et de la plage(int) de la part du client.
Et lorsque vous recevez une demande de MediaPlayer qui ne contient pas de Plage dans l'en-tête HTTP , puis il est demandé un nouveau flux de fichier, dans ce cas, votre en-tête de réponse devrait ressembler à ceci:
Profitez-en!
OriginalL'auteur user1995726