2010-12-27 5 views
7

Vorrei la mia applicazione Android per scaricare un file mp3 da Internet e riprodurlo come un flusso mentre lo si scarica. È possibile? Come potrei fare per farlo?Riprodurre il file mp3 durante il download?

In sostanza, voglio che l'utente sia in grado di ascoltare il file all'istante, ma deve continuare a scaricarlo sulla scheda SD anche se smette di ascoltarlo, quindi l'intero file mp3 finirà sulla scheda SD in entrambi i casi.

+0

Non è la stessa cosa che accade quando si esegue lo streaming di un file audio dal server? – webgenius

+0

Credo che voglia che il file venga salvato nella scheda SD nello stesso momento in cui è in streaming. – schwiz

risposta

0

RTSP o HTTP? Se HTTP puoi provare a rimuovere l'intestazione Content-Length che su alcuni dispositivi mobili consentirà l'immediata chiamata del giocatore. Sembra che tu stia pompando i dati attraverso un'app locale. Come stai giocando il file ora?

1

Non credo che Android fornisca la funzionalità richiesta. Ma c'è una soluzione che so che potrebbe funzionare.

http://code.google.com/p/android/issues/detail?id=739 è un biglietto aperto con un sacco di discussione che si riferisce a ciò che stai descrivendo. Nel 5th comment seeingwithsound dice

Tuttavia, come una soluzione ho prossima streaming i miei dati sintetizzati nei file temporanei molto simile a prendere in considerazione in streaming i flussi HTTP ai file, per la successiva riproduzione di questi file tramite MediaPlayer. [...] Sembra anche se, come il problema potrebbe essere servita da un maggiore controllo sul buffer di MediaPlayer, perché si sono essenzialmente concatenato flussi attraverso qualche meccanismo di cache (buffer) ...

Per essere onesto non ho giocato con MediaPlayer troppo, quindi non posso darti troppi dettagli su come "controllare il buffering di MediaPlayer". Ma supponendo che tu possa farlo funzionare, ti suggerisco di scaricare il tuo file .mp3 in (a) file temporanei che puoi quindi puntare su MediaPlayer.

Spiacente, questa risposta è così vaga, ma stai entrando nel territorio che pochi altri hanno tentato prima. In bocca al lupo.

1

Per i dispositivi Android 2.3 e precedenti, è necessario rimuovere completamente l'intestazione di risposta Content-Disposition. Ciò farà sì che il browser invochi il lettore audio in base alle preferenze dell'utente.

Provalo qui: http://declinefm.com/archives seleziona un archivio di tua scelta e tocca il collegamento per il download.

Per i moderni dispositivi Android, è possibile fare a meno della rimozione dell'intestazione del CD.

Ho un tutorial qui che ho scritto ispirato sul tuo post:

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

Enjoy!