2011-01-30 4 views
6

Posso ascoltare correttamente un flusso audio con l'interfaccia di MediaPlayer, ma come posso ottenere le proprietà del flusso come il bit rate corrente o il testo del flusso (molti stream come le radio in linea includono la traccia in riproduzione)?Android: MediaPlayer, Come ottenere le proprietà di un flusso audio?

Ho cercato di trovare questa informazione ma non potrei, se queste cose sono possibilmente c'è una lista da qualche parte sul sito dev di Android in cui sono elencate le varie "proprietà" disponibili?

risposta

3

In primo luogo, il sito Android DEV è il sito con tutte le informazioni di classe, ma a volte è difficile trovare quello che ti serve. In tal caso, controllare il sorgente java della classe può essere molto utile.

Da una rapida occhiata all'SDK, c'è un'interfaccia onInfoListener, che è possibile implementare in una classe che estende MediaPlayer. Questo ha bisogno di avere public boolean onInfo(MediaPlayer mp, int what, int extra) implementato. http://developer.android.com/reference/android/media/MediaPlayer.OnInfoListener.html afferma che c'è un cosa = MEDIA_INFO_METADATA_UPDATE.

Ma - verifica su Google per che darebbe l'idea che questo non viene mai chiamato: -/ Così alla fine si è da soli con quella ...

+3

Come ho capito, InfoListener viene avvisato solo quando lo streaming è in ritardo. Il "cosa" restituito è solo un numero intero, non c'è molto spazio per artista, titolo, ecc. – rds

0

ho potuto rendere questo più difficile di quanto deve essere , ma puoi decodificare un frame dello Stream con Jlayer o qualche altra libreria di decodifica MP3 per ottenere le informazioni che stai cercando. Non sono sicuro se c'è un modo per farlo con solo il sdk Android.

-2

Se il flusso è uno stream shoutcast/icecast, è possibile utilizzare la classe di utilità a http://code.google.com/p/streamscraper/ per estrarre i metadati incluso il titolo del brano. In alternativa, puoi costruire il tuo estrattore di metadati. Dai un'occhiata a http://www.smackfu.com/stuff/programming/shoutcast.html per maggiori informazioni.

+0

Questo progetto è inutile, considerando che shoutcast offre un servizio web leggero su "http://it.shoutcast.com/Metadata_Info1". php? surl = '. Definitelly overkill e crea molte dipendenze – rds