6

プロジェクトにビデオがあります。そしてセキュリティのために私は非常にうまく機能しているビデオファイルを暗号化します。しかし問題は、

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

この方法では、ファイル(復号化されている)を渡す必要があるため、ファイルのパス用にsdcardに復号化されたファイルを作成しているので、ビデオビューで直接バイト(復号化されている)を渡すことができます。暗号化に暗号を使用しています。

これが私のコードです

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

2 に答える 2

3

復号化されたバージョンを保存するための中間ファイルなしでビデオをVideoViewにストリーミングすることがあなたが探しているものである場合、答えは「はい」です。ローカルhttpインスタンスなどのストリーミングサーバーとCipherInputStreamの2つの主要コンポーネントが必要です。

于 2013-03-27T20:55:54.837 に答える
0

私はあなたがそれをすることができるとは思わない。VideoViewを使用しているので、どの形式やどのようにエンコードされているかなどを示唆する特定のヘッダーとテールエンドが必要になります。最善の策は、ランダムなファイル名を作成し、それを保存してプレーヤーに渡すことです。

于 2012-06-09T07:42:27.090 に答える