2012-06-09 37 views
6

我在我的項目中有視頻。爲了安全起見,我加密了工作得很好的視頻文件。 但問題是我如何從Android中的字節播放視頻

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

在該方法我要通過該文件。(其被解密) 所以我創建於SD卡文件的路徑解密文件是可能通過字節(這是解密)直接在視頻視圖。我正在使用密碼進行加密。

這裏是我的

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

嗨@Youddh,我正在尋找類似的解決方案。你能分享工作代碼嗎? – user1444172

+2

@ user1444172對不起,因爲我知道這是不可能的,所以我創建SD卡中的文件(與一些字節的變化),然後我充電到原始字節播放它(聽到的是答案http://stackoverflow.com/questions/ 4576388 /改變特定字節在一個文件) – Youddh

回答

0

代碼我懷疑你能做到這一點。由於您使用的是VideoView,因此需要特定的標題和尾端,以表明哪種格式以及它如何編碼等。如果您能弄清楚我仍然懷疑它可能需要原始文件。你最好的選擇是創建隨機文件名,同時保存並傳遞給玩家。

+1

好的謝謝,但我喜歡另一種選擇,因爲我只是替換視頻的特定字節,然後寫它...但正如你說我必須創建文件。所以我可以創建文件在捕捉,然後播放它..是可能的..我的視頻尺寸小於2 MB ... – Youddh

+0

我想你可以。讓我們希望別人回答。確保你獲得權限:) – Oasa

3

如果將視頻流式傳輸到VideoView而沒有中間文件來存儲解密版本就是您正在尋找的內容,那麼答案是肯定的,您可以做到這一點。您需要兩個主要組件:一個流式服務器,如本地http實例和CipherInputStream