I am working on an app which needs encryption of video files which is working quite well.But the method I am using to decrypt returns the video as in Byte array. So is there anyway that I can play the video using that array without creating a new file.
My method decryption:
private static byte[] decrypt(byte[] raw, byte[] encrypted) throws EncrypterException {
SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
try {
final Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.DECRYPT_MODE, skeySpec);
return cipher.doFinal(encrypted);
} catch (Exception e) {
throw new EncrypterException(e);
}
}
Please help me I am stuck here ?
After lots of search, this answer could be a sum up. All credits should go the solution owners.
Since VideoView
only accept URL or File, we have two solution;
Solution 1; Create temp File with stream and provide that file to videoView.
Ref; https://stackoverflow.com/a/21549067/1847645
Solution 2; Create media server on Android Local System and provide stream to media server where videoView is directed to the localhost for streaming.
Ref; https://stackoverflow.com/a/9096241/1847645
Other Ref; Which is very useful, thanks to libeasy; https://stackoverflow.com/a/15668803/1847645
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With