android - 即时解密音频/视频到 MediaPlayer

标签 android audio video encryption media-player

我已经四处寻找了几天,但无法得到关于如何去做的明确答案。

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

我环顾四周,大多数解决方案似乎都指向拥有一个本地 httpserver,然后将文件发送到服务器,当它返回时,它将像直播流一样开始播放音频/视频。我不知道的是解密代码是从哪里来的?在服务器端?如果有,在哪一部分?

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

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();
} 

由于我是 Android 开发的新手,所以如果我不清楚或有任何问题,请多多包涵。

谢谢。

最佳答案

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

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

关于android - 即时解密音频/视频到 MediaPlayer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16111224/

相关文章:

android - 如何修改android中的最后一次通话记录

android - 如何在Android手机上链接到RTSP流?

video - 是否可以使用 ffmpeg 垂直旋转 showwaves(或 showfreqs)覆盖?

html - 将视频从 flv 转换为 mp4 音频不播放

javascript - 为什么我的 JavaScript 不被认为是安全的?

android - Otto(事件总线),将事件 fragment 发送到 fragment 但不接收

java - Android SQLite ID

用于 ACCESS_MOCK_LOCATIONS 的 Android Studio 调试特定的 AndroidManifest.xml

ios - 在 iPhone 7 的顶部和底部扬声器之间平移声音

javascript - 如何播放页面上的每个音频元素(HTML、JQuery、Javascript)