2013-02-26 6 views
10

ich Stream will eine Audio-mp3-Datei und dann spiele durch Android Media Player plus Ich diese Datei auch gecached werden soll, so dass Mediaplayer muß für vor kurzem gespielt nicht streamen Spuren.Streaming Audio-Datei und das Caching es

Ich habe versucht mit prepareAsync Methode, aber es gibt mir keinen Zugriff auf Pufferinhalt, so habe ich beschlossen, die Audiodatei selbst zu streamen und dann an den Media Player zum Abspielen übergeben. Ich habe dies erreicht, indem ich diesem Artikel here folgte, aber dieser Ansatz hat ein Problem, d. H. Während der Übertragung der Datei an Media Player geht es in den Fehlermodus, was dazu führt, dass sich mein Player inkonsistent verhält.

Wenn der Mediaplayer in den Fehlermodus wechselt, wird er nicht automatisch ausgeführt, sodass ich gezwungen bin, einen neuen Medienplayer zu erstellen und die heruntergeladene Datei erneut bereitzustellen. Diese Problemumgehung führt zu einer unerwünschten Pause im Lied spielen.

Hat also jemand eine Codeversion verbessert, die oben in link angegeben ist? oder wissen sie eine bessere Lösung für dieses Problem oder gibt es tatsächlich eine Bibliothek zum Streamen einer Audiodatei in Android?

Dank

+0

Aus Sicht des 'MediaPlayer' sollte die als 'DataSource' abstrahierte Eingabequelle im Pull-Modell arbeiten können. Von Ihrem Kommentar oben wird der 'MediaPlayer' die Daten aus Ihrer Streaming-Quelle ziehen. Können Sie bestätigen, dass Ihre Quelle einen Pull-Modus unterstützt? Können Sie die Fehler teilen, denen Sie gegenüberstehen? – Ganesh

+0

@Ganesh Ich bin nicht vertraut mit Pull-Modell können Sie es erklären, oder können Sie erwähnen, eine Verknüpfung, die Media Player Pull-Modell implementiert oder erläutert – prateek

Antwort

0

Der Link zur Verfügung gestellt Sie sieht aus wie eine weniger als ideale Lösung (nicht veraltet ganz zu schweigen). Was Sie wahrscheinlich wollen, ist ein lokaler Proxy-Server, der Ihnen Zugriff auf Byte-Daten gibt, bevor die MediaPlayer es bekommt. Siehe meine Antwort here für ein wenig mehr Erklärung.