2013-03-20 14 views
5

Sto attraversando un periodo difficile visualizzando la traccia corrente riprodotta da una sorgente di streaming. L'utilizzo della classe MediaMetaDataRetriever restituisce un valore NULL, il che significa che non è riuscito. Ho scritto un metodo semplice ma ora sto inclinando a pensare questo funziona solo su file multimediali come MP3, WMA, AVI, eccMediaMetadataRetriever su sorgente streaming

public void metaData(){ 
     mmr.setDataSource(urlStation); 
     String metaD = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUMARTIST); 
     Toast.makeText(MainActivity.this, "Artist = " + metaD, Toast.LENGTH_LONG).show(); 

Eventuali raccomandazioni buona e facile sarebbe molto apprezzato. Grazie per il tuo tempo!

risposta

11

MediaMetadataRetriever non funziona con URL su determinate versioni di Android, vedere problema this. Ho creato FFmpegMediaMetadataRetriever come soluzione alternativa, suggerisco di provarlo.

+0

Grazie William per la risposta. Questo dovrebbe aiutare a risolvere il mio problema. – Marquis

+0

È solo per i file multimediali, non per la fonte di streaming. – jul

+0

William Seemann Sta lavorando a video su youtube ... io ci provo ma non riesco a recuperare l'errore dei metadati ... – arul

2

Secondo lo stesso issue elencati nel altra risposta, è sufficiente utilizzare il metodo setDataSource con questi argomenti:

setDataSource(String uri, Map<String, String> headers) 

Così, per esempio,

public void getStreamMetaData(String url){ 
    MediaMetadataRetriever mmr = new MediaMetadataRetriever(); 
    mmr.setDataSource(url, new HashMap<String, String>()); 
    //now do whatever you want 

} 

ho provato con un streaming mp4 e ha funzionato per me. Inoltre, solo una nota, ti consigliamo di utilizzare il metodo setDataSource in un AsyncTask o su un altro thread, poiché potrebbe richiedere un po 'di tempo per essere eseguito in base ai documenti.

+1

Per me in questo caso tutte le stringhe restituite sono nulle ... ma vlc ottiene informazioni fini. –

Problemi correlati