2012-02-29 11 views
6

Sto lavorando su un'app che richiede la crittografia dei file video che funziona abbastanza bene. Ma il metodo che sto usando per decrittografare restituisce il video come nella matrice Byte. Quindi c'è comunque che posso riprodurre il video usando quell'array senza creare un nuovo file.Come riprodurre un video dalla matrice Byte?

Il mio metodo di decrittazione:

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); 
} 
} 

Please help me io sono bloccato qui?

risposta

1

Come si riproduce di solito il video? Si invia l'istanza InputStrem al lettore. Quindi è ByteArrayInputStream che avvolge l'array di byte e lo invia al lettore.

+0

ok ma come dovrei usare ByteArrayInputStream con VideoView? – Navdroid

+0

@Navdroid: A ByteArrayInputStream è un InputStream. –

+1

Ma io voglio usarlo VideoView .. Come posso usarlo senza creare un nuovo file – Navdroid

0

Non si deve alimentare VideoView con un file statico ma con uno streaming. Come produrre questo flusso? Vedere Android Supported Media Formats. Il più semplice potrebbe essere un server http locale. LocalSingleHttpServer è un esempio di un componente di libreria che implementa questo tipo di soluzione.

1

Dopo molte ricerche, questa risposta potrebbe essere una sintesi. Tutti i crediti dovrebbero andare ai proprietari della soluzione.

Poiché VideoView accetta solo URL o file, abbiamo due soluzioni;

Soluzione 1; Crea file temp con flusso e fornisci quel file a videoView.

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

Soluzione 2; Crea server multimediale su Android Local System e invia stream a server multimediale in cui videoView viene indirizzato all'host locale per lo streaming.

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

Altri rif; Che è molto utile, grazie alla libeasy; https://stackoverflow.com/a/15668803/1847645

Problemi correlati