2012-06-09 19 views
6

Tôi có video trong dự án của mình. và để bảo mật, tôi mã hóa các tệp video đang hoạt động khá tốt. nhưng vấn đề làTôi làm cách nào để phát video từ byte trong android

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

Trong phương pháp này, tôi phải vượt qua các tập tin. (Được giải mã) vì vậy tôi đang tạo ra tập tin giải mã trên sdcard cho con đường của tập tin là có thể vượt qua byte (trong đó có được giải mã) trực tiếp trong chế độ xem video. Tôi đang sử dụng Cipher để mã hóa.

Đây là mã của tôi cho

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

Xin chào @Youddh, tôi đang tìm giải pháp tương tự. Bạn có thể chia sẻ mã hoạt động không? – user1444172

+2

@ user1444172 xin lỗi như kiến ​​thức của tôi là nó không thể, vì vậy tôi tạo tập tin trong sdcard (với sự thay đổi của một số byte) sau đó tôi nạp tiền vào byte gốc để chơi nó. (Nghe là câu trả lời http://stackoverflow.com/questions/ 4576388/change-a-specific-byte-in-a-file) – Youddh

Trả lời

0

tôi nghi ngờ bạn có thể làm điều đó. Kể từ khi bạn đang sử dụng VideoView, nó sẽ yêu cầu tiêu đề cụ thể và đuôi kết thúc mà đề nghị định dạng và cách nó được mã hóa vv Nếu bạn có thể tìm ra rằng tôi vẫn còn nghi ngờ nó có thể mất tập tin thô. Đặt cược tốt nhất của bạn sẽ là tạo tên tệp ngẫu nhiên trong khi lưu và chuyển cho người chơi.

+1

ok cảm ơn nhưng tôi thích một lựa chọn khác cho nó tôi chỉ thay thế byte cụ thể của video sau đó viết nó ... nhưng như u nói tôi phải tạo tập tin. vì vậy tôi có thể tạo tập tin trong đánh bắt và sau đó chơi nó .. là có thể .. kích thước video của tôi là ít hơn 2 mb ... – Youddh

+0

Tôi cho rằng bạn có thể. Cho phép hy vọng một số câu trả lời khác. Hãy chắc chắn rằng bạn nhận được sự cho phép ngay :) – Oasa

3

Nếu phát video sang VideoView mà không có tệp trung gian để lưu trữ phiên bản đã giải mã là những gì bạn đang tìm kiếm, thì câu trả lời là Có, bạn có thể làm điều đó. Bạn cần hai thành phần chính: máy chủ phát trực tuyến chẳng hạn như một phiên bản http địa phương và CipherInputStream.

Các vấn đề liên quan