Android Media Player: Download Datei-und Stream-Datei

Ich bin mit Android MediaPlayer zur Wiedergabe von MP3-Dateien, die gleichzeitig heruntergeladen aus dem internet über die DownloadManager. Ich bin mir bewusst, dass der MediaPlayer's capability stream direkt, aber ich möchte nicht, dass:

Den offensichtlichen Vorteil, den Sie bekommen, durch das herunterladen und gleichzeitige streaming von Datei, die auf diese Weise, die Datei wird gespeichert und steht danach lokal.

  • Dies funktioniert im Prinzip - die MediaPlayer startet um die Datei zu spielen, auch wenn es nicht vollständig heruntergeladen. (BTW mein problem ist NICHT, dass ich kann nicht MediaPlayer zu spielen.)
  • Das problem ist, dass, wenn die MediaPlayer bekommt auf der position, wo der download-status war nur noch, Wann es angefangen zu spielen, hört es und ruft onCompletion. (Klärung: nehmen wir an, die Datei ist 12% heruntergeladen, wenn ich die Wiedergabe starte. Wenn der Spieler die position bei 12%, dann Stoppt es.)
  • Kurze Randnotiz: OnBufferingUpdateListener.onBufferingUpdate(...) wird nicht aufgerufen, wenn etwas angehängt wird, um die MP3-Datei über die DownloadManager.

Also die Frage ist: Wie kann ich gleichzeitig laden Sie eine audio-Datei, um die Datei-system und spielen Sie es? (Android 4+ genügt, wenn das einen Unterschied macht.)

  • Wie machst du denn das streaming? Durch die Implementierung einer einfachen localhost-server liest Daten aus der Download-Datei und führt es einen MediaPlayer, der eingestellt wurde, um Strom von localhost? In diesem Fall konnte nicht Sie Ihre server return ein Content-Length-entspricht oder übertrifft die gesamte Länge der Datei?
  • Gut, ich habe gerade Punkt der MediaPlayer die Datei, die derzeit, und setzen Sie dessen Modus auf STREAM_BLAH (was es eigentlich heißt). Also ich habe keinen server derzeit.
  • Hi Hinton, ich haben zu tun die gleiche Sache, die Sie Fragen können Sie eine Antwort(mit einigen Details), wie hast du es so, dass ich umsetzen kann, es auf meiner Seite.
  • Ich bin ziemlich beschäftigt im moment, aber ich werde versuchen, die Antwort in ein paar Tagen, wenn Sie immer noch wollen, nachdem Sie dies gelesen habe. Problem: die Sache, Die ich realisiert endlich, ist ziemlich hässlich. Ich habe versucht, Oren Ansatz (das ist natürlich die beste und richtige Lösung), aber es war nicht so wichtig für mich, so dass ich gerade beschlossen, Strom aus der URL standardmäßig und lassen Sie die Benutzer sagen Sie mir, wenn Sie wollte zum download. Im letzteren Fall, würde ich Strom aus der URL beim Download (ja: Verschwendung von Bandbreite), und als der download fertig war, ich würde wechseln vom streaming auf die heruntergeladene Datei, wenn der Benutzer auf pause.
  • Weiter: Das funktioniert erstaunlich gut. Das problem ist die Verschwendung von Bandbreite. Wenn Sie dies tun, für einen Kunden, der ist nicht sehr aufmerksam und nicht kompetent über android-Programmierung, Sie werden nie bemerken. Es funktioniert-zumindest als temporäre Lösung - Kunden sagen Sie "ich MÖCHTE dieses feature" - dann ist es natürlich besser zu implementieren, Alles schnell und versuchen, es zu beheben, wenn Sie Zeit haben (= "nie", wenn Sie eine zynische person).
InformationsquelleAutor Hinton | 2012-12-13
Schreibe einen Kommentar