2012-02-29 9 views
6

Pracuję nad aplikacją, która wymaga szyfrowania plików wideo, która działa całkiem dobrze. Ale metoda, której używam do odszyfrowania, zwraca wideo jak w tablicy Bajtów. W każdym razie mogę odtwarzać wideo używając tej tablicy bez tworzenia nowego pliku.Jak odtwarzać wideo z tablicy Byte?

Moja metoda deszyfrowania:

private static byte[] decrypt(byte[] raw, byte[] encrypted) throws EncrypterException { 
SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES"); 
try { 
    final Cipher cipher = Cipher.getInstance("AES"); 
    cipher.init(Cipher.DECRYPT_MODE, skeySpec); 

    return cipher.doFinal(encrypted); 

} catch (Exception e) { 
    throw new EncrypterException(e); 
} 
} 

Proszę mi siedzę tu pomóc?

Odpowiedz

1

Jak zwykle odtwarzasz wideo? Wysyłasz instancję InputStrem do odtwarzacza. Tak więc ByteArrayInputStream zawija tablicę bajtów i wysyła ją do odtwarzacza.

+0

ok, ale w jaki sposób użyć ByteArrayInputStream z VideoView.? – Navdroid

+0

@Navdroid: A ByteArrayInputStream jest InputStream. –

+1

Ale chcę go użyć VideoView ..Jak mogę go użyć bez tworzenia nowego pliku – Navdroid

0

Nie należy podawać VideoView za pomocą pliku statycznego, ale za pomocą strumienia. Jak stworzyć ten strumień? Patrz Android Supported Media Formats. Najprostszym może być lokalny serwer http. LocalSingleHttpServer jest przykładem komponentu bibliotecznego wdrażającego tego rodzaju rozwiązanie.

1

Po wielu poszukiwaniach ta odpowiedź może być podsumowaniem. Wszystkie kredyty powinny trafić do właścicieli rozwiązań.

Od VideoView akceptujemy tylko URL lub Plik, mamy dwa rozwiązania;

Rozwiązanie 1; Utwórz plik tymczasowy ze strumieniem i przekaż ten plik do wideoView.

Ref; https://stackoverflow.com/a/21549067/1847645

Rozwiązanie 2; Utwórz serwer multimediów w systemie lokalnym systemu Android i przekaż strumieniowo na serwer multimediów, gdzie wideoView jest kierowane do hosta lokalnego w celu przesyłania strumieniowego.

Ref; https://stackoverflow.com/a/9096241/1847645

Inny odnośnik; Co jest bardzo przydatne, dzięki libeasy; https://stackoverflow.com/a/15668803/1847645

Powiązane problemy