2012-06-09 15 views
6

Tengo video en mi proyecto. y por seguridad encripto los archivos de video que funcionan bastante bien. pero el problema es que el¿Cómo puedo reproducir video desde un byte en Android

**videoView.setVideoPath("/mnt/sdcard/intro_video.3gp");** 

En este método que tiene que pasar el archivo. (Que se descifra) por lo que estoy creando archivo descifrado en sdcard para la ruta del archivo es que posible pasar bytes (que son descifrado) directamente en la vista de video. Estoy usando Cipher para encriptar.

Aquí está mi código para

private void decryption()throws Exception { 
    // TODO Auto-generated method stub 
    String filePath2 = path + "en/encVideo"; 

    String filePath3 = path + "de/decVideo"; 

    File decfile = new File(filePath3); 


    if(!decfile.exists()) 
     decfile.createNewFile(); 

    File outfile = new File(filePath2); 
    int read; 

    FileInputStream encfis = new FileInputStream(outfile); 
    Cipher decipher = Cipher.getInstance("AES"); 

    decipher.init(Cipher.DECRYPT_MODE, skey); 
    FileOutputStream decfos = new FileOutputStream(decfile); 
    CipherOutputStream cos = new CipherOutputStream(decfos,decipher); 

    while((read=encfis.read()) != -1) 
    { 

     cos.write(read); 
     cos.flush(); 
    } 
    cos.close(); 
} 
+1

Hola @Youddh, estoy buscando una solución similar. ¿Puedes compartir el código de trabajo? – user1444172

+2

@ user1444172 lo siento, por lo que yo sé, no es posible, así que creo un archivo en una tarjeta SD (con el cambio de algunos bytes) y luego recargo el byte original para reproducirlo (escuchar es la respuesta http://stackoverflow.com/questions/ 4576388/changing-a-specific-byte-in-a-file) – Youddh

Respuesta

0

dudo que pueda hacerlo. Como está utilizando VideoView, se requerirían encabezados y extremos específicos que sugieran qué formato y cómo se codifica, etc. Si puede descubrir que aún dudo, puede tomar el archivo sin formato. Su mejor opción sería crear nombres de archivos aleatorios al guardarlos y pasarlos al reproductor.

+1

ok gracias pero me gusta otra opción simplemente remplazo byte específico de video y luego lo escribo ... pero como dicen que tengo que crear un archivo. entonces puedo crear un archivo en catch y luego jugarlo ... es posible ... mi tamaño de video es menos de 2 mb ... – Youddh

+0

Supongo que puedes. Esperemos que alguien más responda. Asegúrate de obtener el permiso correcto :) – Oasa

3

Si está transfiriendo el video a un VideoView sin un archivo intermediario para almacenar la versión descifrada es lo que está buscando, entonces la respuesta es Sí, puede hacerlo. Necesita dos componentes principales: un servidor de transmisión como una instancia http local y CipherInputStream.

Cuestiones relacionadas