即时解密音频/视频到MediaPlayer

use*_*855 6 encryption audio video android media-player

我一直在寻找几天,但无法得到如何做到这一点的明确答案.

我的SD卡上有一些加密的音频/视频文件,我想将它发送到MediaPlayer,并在解密工作的同时开始播放.它最初会创建一个缓冲区,当它有足够的初始数据开始播放时,MediaPlayer将开始播放,并在后台解密并继续发送数据.

我环顾四周,大部分解决方案似乎都指向了localhttpserver,然后将文件发送到服务器,当它返回时,它将开始播放音频/视频,就像直播一样.我不知道的是解密代码在哪里?在服务器端?如果是这样,在哪一部分呢?

我也看过这个http://libeasy.alwaysdata.net/解决方案,它可能能够解决它,但我似乎无法理解它是如何工作的.我知道它创建了一个本地服务器,但在Cipher部分,我自己的解密如何发挥作用?

private void myPlay(String path) {
    mServer = new LocalSingleHttpServer();
    mServer.setCipher(myGetCipher());
    mServer.start();
    path = mServer.getURL(path);
    mVideoView.setVideoPath(path);
    mVideoView.start();
}
public void onCompletion(MediaPlayer mp) { // MediaPlayer.OnCompletionListener interface
    mServer.stop();
} 
Run Code Online (Sandbox Code Playgroud)

由于我对Android开发很陌生,如果我不清楚或任何事情,请耐心等待.

谢谢.

小智 0

如果您为其提供密码,则解密由 http 服务器完成。
编写类似这样的代码(您必须在某处添加异常捕获):

import javax.crypto.Cipher;
private Cipher myGetCipher() {
    Cipher c = Cipher.getInstance("RC4");
    c.init(Cipher.DECRYPT_MODE, new SecretKeySpec("myPassword".getBytes(), "RC4"));
    return c
}
Run Code Online (Sandbox Code Playgroud)