libmedia ライブラリ ( http://libeasy.alwaysdata.net/ ) を使用して以下のように試しましたが、暗号化されたビデオは復号化されず、同じキーと暗号で再生されません。お願いします。以下の私のコードを参照してください:(理解しやすいように変更されています)
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
私の観察:
- 小さい MP4 ファイルでは、少なくとも暗号化されていないビデオがローカル http サーバーから再生されます
- 大きな MP4 ファイルでは、暗号化されていないビデオも再生されません
- ファイルが小さい場合、暗号化されたファイルは、暗号化に使用されたのと同じキーに基づく暗号で再生されません。
- AES/RC4 を使用した暗号化と復号化がうまく機能することを確認できます。プレーヤーから復号化されたファイルを正常に再生できます。
暗号化されたビデオを再生するためにlibmedia APIを使用する正しい方法を使用するのを手伝ってください