Autore Topic: MediaPlayer con input stream  (Letto 211 volte)

Offline MarcoDuff

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 914
  • Respect: +150
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    HTC Desire
  • Market Developer Name:
    MarcoDuff
  • Sistema operativo:
    Windows 7
MediaPlayer con input stream
« il: 01 Settembre 2010, 11:26:47 CEST »
0
Per far suonare qualche cosa Android mette a disposizione la classe MediaPlayer, in particolare bastano queste righe di codice per far suonare il nostro device da uno stream proveniente da internet:

Codice (Java): [Seleziona]
MediaPlayer mMediaPlayer = new MediaPlayer();
mMediaPlayer.setDataSource(URL_STREAM);
mMediaPlayer.prepare();
mMediaPlayer.start();

Ma se lo stream non è uno stream audio puro esiste un modo per far suonare il device passando i byte dell'MP3?

Il problema è il seguente. Alcuni stream audio (ad esempio quelli di SHOUTcast) sono inviati utilizzando il protocollo ICY, ovvero durante lo streaming audio vengono inviati anche dei dati sulla particolare canzone che sta suonando in quel momento.

In particolare lo stream è di questo tipo:


Quindi non posso passare direttamente la url al MediaPlayer, ma devo fare un pretrattamento dello stream, leggendo la parte Metadata a parte e inoltrando solo il flusso di byte riguardanti l'MP3 al MediaPlayer.

Avete idea su come posso fare?
Le mie Applicazioni Android | Il mio Blog

Io faccio parte del Gruppo AndDev.it LOGTFO, tu no? Allora GTFO!
Quando un utente fornisce una risposta utile si può ringraziarlo premendo il tasto  alla destra del titolo del post. (Ricky` rulez)