2013-04-19 5 views
6

Ich habe mich seit ein paar Tagen umgesehen, aber nicht in der Lage, eine klare Antwort zu bekommen, wie es geht.Entschlüsselung von Audio/Video on-the-fly zu MediaPlayer

Ich habe einige verschlüsselte Audio/Video-Dateien auf meiner SD-Karte, die ich gerne abspielen würde, die es an MediaPlayer senden wird, und fange an zu spielen, während die Entschlüsselung gleichzeitig funktioniert. Es erzeugt zunächst einen Puffer, und wenn es genug Ausgangsdaten hat, um mit der Wiedergabe zu beginnen, wird der MediaPlayer abgespielt und im Hintergrund entschlüsselt und die Daten weiter gesendet.

Ich sah mich um und die meisten der Lösung scheinen auf einen lokalenhttpserver zu zeigen, und dann senden Sie die Datei an den Server, und wenn es zurückkommt, wird es beginnen, die Audio/Video wie ein Live-Stream zu spielen. Was ich nicht weiß ist, wo kommt der Entschlüsselungscode rein? Auf der Serverseite? Wenn ja, in welchem ​​Teil davon?

Ich habe auch diese http://libeasy.alwaysdata.net/ Lösung gesehen, die möglicherweise in der Lage, es zu lösen, aber ich kann nicht scheinen zu verstehen, wie das funktioniert. Ich weiß, dass es einen lokalen Server erstellt, aber auf dem Cipher-Teil, wie kommt meine eigene Entschlüsselung ins Spiel?

private void myPlay(String path) { 
    mServer = new LocalSingleHttpServer(); 
    mServer.setCipher(myGetCipher()); 
    mServer.start(); 
    path = mServer.getURL(path); 
    mVideoView.setVideoPath(path); 
    mVideoView.start(); 
} 
public void onCompletion(MediaPlayer mp) { // MediaPlayer.OnCompletionListener interface 
    mServer.stop(); 
} 

Als ich Android Entwicklung ganz neu bin, so bei mir tragen, wenn ich unklar oder irgendetwas bin.

Vielen Dank.

+0

Haben Sie eine Lösung für diese bekommen? Ich kann das verschlüsselte Video auch nicht abspielen – user1444172

+0

Dies ist nicht die beste Lösung, da Sie das Video nur anschauen können, wenn Sie online sind. Es macht Sie auch abhängig von der Geschwindigkeit der Internetverbindung. Versuchen Sie nach etwas zu suchen, um den Job lokal auf dem Gerät auszuführen. Wenn die Dateien klein sind. Sie können es einmal tun, aber das wird nicht funktionieren, wenn Sie mit großen Dateien zu tun haben. –

Antwort

0

Die Entschlüsselung erfolgt durch den http-Server, wenn Sie eine Chiffre bereitstellen.
-Code so etwas wie dieses (Sie erhalten die Ausnahme fangen irgendwo hinzufügen müssen):

import javax.crypto.Cipher; 
private Cipher myGetCipher() { 
    Cipher c = Cipher.getInstance("RC4"); 
    c.init(Cipher.DECRYPT_MODE, new SecretKeySpec("myPassword".getBytes(), "RC4")); 
    return c 
} 
+0

Hallo @ lifeasy, ich verfolge deine Beiträge von verschiedenen Orten. Wie unten beschrieben: Das verschlüsselte Video wird jedoch nicht mit demselben Schlüssel und derselben Chiffre abgespielt. Pls. Siehe meinen Code unten: (Ich gebe meinen Code als separate Antwort ein, dieser Kommentarraum ist nicht genug. – user1444172

+0

Für diese Art von Hilfe benutzen Sie bitte den auf der Seite erwähnten Kontakt. Denken Sie auch daran, dass etwas nicht funktioniert, doesn Helfen Sie nicht viel, geben Sie stattdessen einen echten Bericht mit Logcat und Details über das Gerät und den Kontext. – libeasy

Verwandte Themen