2012-02-29 25 views
6

Estoy trabajando en una aplicación que necesita el cifrado de archivos de video que funciona bastante bien. Pero el método que estoy usando para descifrar devuelve el video como en una matriz de bytes. Entonces, de todos modos, puedo reproducir el video usando esa matriz sin crear un nuevo archivo.¿Cómo reproducir un video de una matriz de bytes?

Mi método de descifrado:

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

Por favor, estoy atascado aquí ayuda?

Respuesta

1

¿Cómo sueles reproducir el video? Usted envía InputStrem instancia al reproductor. Así que ByteArrayInputStream que envuelve su matriz de bytes y la envía al reproductor.

+0

bien, pero ¿cómo utilizaría ByteArrayInputStream con VideoView.? – Navdroid

+0

@Navdroid: A ByteArrayInputStream es un InputStream. –

+1

Pero quiero usarlo VideoView ... ¿Cómo puedo usarlo sin crear un nuevo archivo? – Navdroid

0

No debe alimentar a VideoView con un archivo estático, pero con una transmisión. Cómo producir esta corriente? Consulte Android Supported Media Formats. El más simple puede ser un servidor http local. LocalSingleHttpServer es un ejemplo de un componente de biblioteca que implementa este tipo de solución.

1

Después de mucha búsqueda, esta respuesta podría ser un resumen. Todos los créditos deben ir a los dueños de la solución.

Dado que VideoView solo acepta URL o archivo, tenemos dos soluciones;

Solución 1; Crear archivo temporal con transmisión y proporcionar ese archivo a videoView.

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

Solución 2; Cree un servidor de medios en el sistema local Android y proporcione transmisión al servidor de medios donde videoView se dirige al servidor local para la transmisión.

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

Otro Ref; Lo cual es muy útil, gracias a libeasy; https://stackoverflow.com/a/15668803/1847645

Cuestiones relacionadas