2011-10-27 4 views
1

Je souhaite lire un fichier mp3 hébergé à distance. Quand je fais de la manière indiquée dans ce lien http://developer.android.com/guide/topics/media/mediaplayer.html, je reçois l'erreur:MediaPlayer Prepare Échec de la lecture à partir d'une URL distante via le streaming HTTP

java.io.IOException: Prepare failed.: status=0x1

Après une recherche sur le Web, j'ai trouvé une alternative dans ce lien http://blog.pocketjourney.com/2008/04/04/tutorial-custom-media-streaming-for-androids-mediaplayer/, qui ne fonctionne pas très bien non plus. Il télécharge le fichier audio en streaming et crée un fichier temporaire .dat. Chaque fois qu'un autre incrément du fichier est téléchargé, le MediaPlayer doit être arrêté afin de définir les nouvelles données récupérées dans le MediaPlayer. Le processus joue l'audio, mais il passe par quelques petites pauses dans le chemin. C'est correct d'avoir ces pauses parce que pas assez de données sont encore téléchargées, mais ce n'est pas bon d'avoir le lecteur mis en pause chaque fois que de nouvelles données sont récupérées. Donc, ma question est la suivante: y a-t-il une autre façon de lire un fichier audio distant? Pourquoi cette erreur "préparer l'échec" se produit-elle? J'ai remarqué que cela arrive avec certains fichiers mp3, mais pas avec d'autres. Y at-il une sorte de mp3 mal formé pour la classe MediaPlayer (et un moyen de le réparer)?

Exemple: http://1cd.palco.fm/a/c/4/5/bandainovation-so-hoje.mp3. Vous obtenez l'erreur avec ce mp3, mais vous pouvez le jouer avec d'autres joueurs (Banshee ou Windows Media Player, par exemple).

Un grand merci à l'avance

+0

C'est une bonne question! – flopes

+1

J'ai essayé de résoudre ce problème pendant un certain temps ... J'espère que quelqu'un me dira au moins ce qui ne va pas avec le fichier lui-même, car certains fichiers audio mp3 joue très bien. Peut-être un moyen de réparer un en-tête mp3 mal formé ou quelque chose comme ça ... – Alesqui

Répondre

0

Je pense que vous pourriez avoir besoin d'ajouter une autorisation spécifique à votre fichier AndroidManifest.xml, accordant votre application à utiliser Internet.

<uses-permission android:name="android.permission.INTERNET" /> 

Aussi, assurez-vous que vous disposez d'une connexion de données (se produit lorsque pas sans fil est activée je l'ai testé sur mon Samsung Galaxy Ace, la même exception).

+0

Pas le cas. J'ai déjà défini cette permission. L'application fonctionne parfaitement sur Android 2.3 pour toutes les chansons, mais certaines chansons ne fonctionnent pas sur 2.1. – Alesqui

+1

En toute honnêteté, tout ce qui est en dessous d'Android 2.2 ne fonctionnera probablement pas de manière cohérente. – StackOverflowed

Questions connexes