2010-12-27 5 views
7

Je voudrais que mon application Android télécharge un fichier mp3 sur Internet et le joue comme un flux tout en le téléchargeant. Est-ce seulement possible? Comment pourrais-je y aller? Essentiellement, je veux que l'utilisateur soit capable d'écouter le fichier instantanément, mais qu'il continue à télécharger sur la carte SD même s'il arrête d'écouter, donc le fichier mp3 entier finira sur la carte SD de toute façon.Lire un fichier mp3 lors du téléchargement?

+0

N'est-ce pas la même chose que lorsque vous diffusez un fichier audio à partir du serveur? – webgenius

+0

Je crois qu'il veut que le fichier soit enregistré sur la carte SD en même temps qu'il est en streaming. – schwiz

Répondre

0

RTSP ou HTTP? Si HTTP vous pouvez essayer et supprimer l'en-tête Content-Length qui sur certains appareils mobiles permettra l'invocation immédiate du lecteur. Il semble que vous pompiez les données via une application locale. Comment jouez-vous le fichier maintenant?

1

Je ne crois pas android fournit la fonctionnalité que vous demandez. Mais il y a une solution de contournement que je connais qui pourrait fonctionner.

http://code.google.com/p/android/issues/detail?id=739 est un ticket ouvert avec beaucoup de discussion qui se rapporte à ce que vous décrivez. Dans le 5th comment seeingwithsound dit

Cependant, comme solution de contournement streamer suivant mes données synthétisées aux fichiers temporaires un peu comme vous envisagez de streaming vos flux HTTP vers des fichiers, pour une lecture ultérieure de ces fichiers via MediaPlayer. [...] Il semble bien que votre problème pourrait être servi par plus de contrôle sur la mise en mémoire tampon de MediaPlayer, parce que vous êtes essentiellement concaténez cours d'eau grâce à un mécanisme de cache (tampon) ...

Pour être honnête, je n'ai pas joué avec MediaPlayer trop, donc je ne peux pas vous donner trop de détails sur la façon de "contrôler la mise en mémoire tampon de MediaPlayer". Mais en supposant que vous puissiez le faire fonctionner, je vous suggère de télécharger votre fichier .mp3 dans un (des) fichier (s) temporaire (s) que vous pouvez ensuite diriger vers MediaPlayer.

Désolé cette réponse est trop vague, mais vous entrez dans un territoire que peu d'autres ont déjà essayé. Bonne chance.

1

Pour les appareils Android 2.3 et versions antérieures, vous devez supprimer complètement l'en-tête de réponse Content-Disposition. Cela entraînera le navigateur à invoquer le lecteur audio de la préférence de l'utilisateur.

Essayez-le ici: http://declinefm.com/archives sélectionnez une archive de votre choix, puis appuyez sur le lien de téléchargement.

Pour les appareils Android modernes, vous pouvez vous passer de la suppression de l'en-tête du CD.

J'ai un tutoriel ici que j'ai écrit inspiré votre message:

http://rudd-o.com/linux-and-free-software/how-to-properly-stream-audio-from-your-plone-varnish-site

Enjoy!

Questions connexes