Autore Topic: SHOUTcast - Streaming radio, meglio AudioTrack o MediaPlayer?  (Letto 998 volte)

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
SHOUTcast - Streaming radio, meglio AudioTrack o MediaPlayer?
« il: 24 Settembre 2012, 15:26:15 CEST »
0
Salve a tutti,
sto realizzando una piccola app per poter ascoltare da dispositivo android una web radio; la radio effettua lo streaming usando SHOUTcast.

Al momento per fare la riproduzione dei brani sto salvando un file fisico sul dispositivo via via che catturo lo streming, dandolo poi in pasto a MediaPlayer quando ho sufficiente "buffer" salvato.
La soluzione non mi piace molto, per quanto funzionante; chiaramente non è una buona idea appoggiare lo streaming sul dispositivo andando ad intaccare la memoria fisica dello stesso (che non è infinita, e lo streaming raggiunge dimensioni considerevoli in breve tempo). In giro per la rete ho trovato solo questo "trucco" del file fisico per effettuare la riproduzione dello stream SHOUTcast usando MediaPlayer per la riproduzione.

Mentre lavoravo per cercare di ottimizzare le cose (salvando spezzoni di stream invece che un unico file, e cancellando via via gli spezzoni riprodotti) mi sono imbattuto sulla classe AudioTrack, che invece sembra lavorare direttamente con uno stream di byte a differenza del MediaPlayer.

Qualcuno ha già avuto modo di giocare con questa classe o, più in generale, ha già sbattuto la testa su questo tipo di problematiche?
Facendo una ricerca sul forum sembrerebbe di si, ma non ho trovato soluzioni o best practice condivise col resto della community =)
« Ultima modifica: 27 Settembre 2012, 13:05:09 CEST da Sakazaki »

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:SHOUTcast - Streaming radio, meglio AudioTrack o MediaPlayer?
« Risposta #1 il: 27 Settembre 2012, 19:13:50 CEST »
0
Spero faccia piacere a chi si è già imbattuto nel medesimo problema sapere che in realtà il MediaPlayer d'android supporta gli stream SHOUTcast!

In rete ci sono tonnellate d'esempi di come scaricare lo stream in un file temporaneo e usare quello per il MediaPlayer, la cosa lascia pensare quindi che sia necessario gestire tutto manualmente.
In uno sperduto forum ho trovato invece la risposta che cercavo:

Codice (Java): [Seleziona]
m_media_player.setDataSource(getApplicationContext(), Uri.parse(getString(R.string.radio_url)));
Il trucco sta in cosa va dato in pasto all'Uri.parse... che dev'essere l'indirizzo del pannello di controllo di SHOUTcast della radio che si vuole riprodurre.

Forse alcuni di voi lo sapevano già, ma per me è stata una scoperta sconvolgente (perché, almeno per me, totalmente illogica :-P)
« Ultima modifica: 27 Settembre 2012, 19:19:46 CEST da Sakazaki »

Offline syndacate

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    GS3
Re:SHOUTcast - Streaming radio, meglio AudioTrack o MediaPlayer?
« Risposta #2 il: 13 Dicembre 2012, 18:11:11 CET »
0
Ciao, scusa, ho un problema simile coi video. Vorrei riuscire a collegarmi ad un server che fa live streaming di video in formato webm. Anche io scaricandone un pezzetto e poi dandolo in pasto al mediaplayer riesco a visualizzarlo, ma vorrei invece una soluzione tipo la tua. Hai qualche idea a riguardo?