我怎样才能在android中播放来自byte的视频

时间:2012-06-09 07:04:36

标签: android encryption android-videoview

我的项目中有视频。为了安全起见,我加密了运行良好的视频文件。 但问题在于

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

在这个方法中我必须传递文件。(解密后) 所以我在sdcard上创建解密文件的文件路径是可以直接在视频视图中传递字节(解密)。我正在使用Cipher进行加密。

这是我的

代码
 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(); 
}

2 个答案:

答案 0 :(得分:3)

如果将视频流式传输到没有中间文件的VideoView来存储解密版本就是您要找的,那么答案是肯定您可以这样做。您需要两个主要组件:流式服务器,例如本地http实例和CipherInputStream

答案 1 :(得分:0)

我怀疑你能做到。由于你使用的是VideoView,它需要特定的标题和尾端,它们建议使用哪种格式以及如何编码等等。如果你能弄清楚我仍然怀疑它可以采用原始文件。您最好的选择是在保存并将其传递给播放器时创建随机文件名。