Wie kann ich Musik von einer Datei in verschlüsselten Zip streamen, ohne die gesamte Datei zu dekomprimieren?

8

Ich muss die Audiodatei abspielen. Welches ist in Zip-Datei, die das Geschenk in SD-Karte ist. Und die Audiodatei ist verschlüsselt. Während ich das Audio entschlüssle, werde ich die Daten im Inputstream bekommen.

Ich möchte nicht entpacken, weil es Speicherplatz auf der Festplatte frisst.

Wie ich untersucht habe, habe ich keine Hinweise bekommen, wie man Audio direkt spielt, wenn ich Stream habe. Es ist nur über das Netzwerk möglich. Was ist nicht in diesem Fall.

Also, was ich gedacht habe ist, einen Thread zu spawnen, der Daten (Bytes) an die Datei anhängt. Wenn dies beginnt, rufe ich MediadPlayer an, um seinen Job zu starten.

Media Player ist in Ordnung. Spaß beginnt hier: Angenommen, Audiodatei in 6 Minuten - 5 MB. Die Pufferung könnte für 2 MB passieren. In der Suchleiste kann ich für 2min als meine maximale Dauer sehen. Das ist vollkommen richtig. Wenn die Pufferung immer noch fortgesetzt wird .. passiert, ich möchte die Zeit in der Suchleiste und deren Länge (Suchbalkenlänge) aktualisieren ist für die gegebene Zeit direkt proportional. Wie gehe ich hier vor?

Ich habe OnBuffering dafür versucht, es hat nicht funktioniert. Ich denke eigentlich ist es für das Streaming Audio-Datei, wenn es über ein Netzwerk gespielt wird.

Bitte geben Sie mir eine einfache Lösung, wie man das schafft? Frag mich nicht, MediaPlayer class zu überschreiben und daran zu arbeiten.

Jede Hilfe wird geschätzt. Lass es mich wissen, wenn du mehr Klarheit darüber brauchst.

%Vor%     
maxwells 24.12.2011, 12:25
quelle

1 Antwort

1

Afaik, Sie könnten einen FileDescriptor aus einer Zip ohne Extrahieren mit der ZipResource Library von Google nehmen, ist nur für Erweiterungspakete gedacht, aber es funktioniert perfekt, wenn Sie nur die Elemente speichern und nicht komprimieren (zip -r -n .mp3: .png: .txt Schicksal Ursprung).

Der FileDescriptor kann mit dem MediaPlayer verwendet werden, aber wenn er verschlüsselt ist und möglicherweise zwei Deskriptoren enthält, kann er Ihnen helfen, den Fluss der Entschlüsselung zu optimieren.

%Vor%

verwende dann: ZipResourceFile z = getExpansionFiles (mContext);

AssetFileDescriptor afd = z.getAssetFileDescriptor (mItem + ". mp3");

Ich hoffe, es hilft Ihnen trotzdem, sind Sie sicher, dass Sie nicht warten wollen, bis die Datei vollständig entschlüsselt ist, und spielen Sie sie dann, ohne sich um all diese Kopfschmerzen zu kümmern?

    
meyo 16.10.2013 14:35
quelle

Tags und Links