使用libmedia库动态解密视频

时间:2013-05-30 13:16:09

标签: android encryption android-mediaplayer android-videoview

我使用libmedia库(http://libeasy.alwaysdata.net/)尝试如下:但加密的视频不会解密并使用相同的密钥和密码进行播放。 PLS。请参阅下面的代码:(为便于理解而修改)

public class MyClassActivity extends Activity {

VideoView mVideoView; 
LocalSingleHttpServer mServer ;

@Override 
protected void onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState);

  SecretKey sk = encryptVideo("/mnt/sdcard/input.mp4", "/mnt/sdcard/enc.mp4");

  playENCVideo(sk,"/mnt/sdcard/enc.mp4");
}

public void playENCVideo(SecretKey skey, String path) {

   Cipher decipher = null;

   decipher = Cipher.getInstance("AES");

   decipher.init(Cipher.DECRYPT_MODE, skey);

   mServer = new LocalSingleHttpServer();

   mServer.setCipher(decipher);
   mServer.start();

   path = mServer.getURL(path);

  mVideoView = (VideoView) findViewById(R.id.vid_view);
  mVideoView.setVideoPath(path);
  mVideoView.setOnPreparedListener(this);
  mVideoView.setOnCompletionListener(this);
  mVideoView.setMediaController(new MediaController(this));
  mVideoView.start();
} //playENCVideo()

encryptVideo() {

}

decryptVideo() {

}
} //MyClassActivity

我的观察:

  1. 使用较小的MP4文件,至少从未加密的视频播放 本地http服务器
  2. 使用较大的MP4文件,也可以使用未加密的视频 不玩
  3. 使用较小的文件时,加密文件无法播放 使用基于与加密相同的密钥的密码。
  4. 我可以确认我使用AES / RC4加密和解密效果很好。一世 可以通常从播放器播放解密文件。
  5. 请帮助我使用正确的方法使用libmedia API播放加密视频

0 个答案:

没有答案