【发布时间】:2012-02-13 08:18:34
【问题描述】:
我正在尝试修改(扩展)FileInputStream 类,以便我可以打开加密文件并将流用于 MediaPlayer 的setDataSource(FileDescriptor)。问题是我不知道应该重写哪个方法来在流中进行解密。我尝试覆盖所有 read() 方法,但 mediaPlayer 似乎没有使用它们。
有什么建议吗?
【问题讨论】:
-
您使用的是哪种加密方式?
-
我正在使用 RC4。据说在从 FileInputStream 读取()时,我可以即时解密它。我已经为文件服务器实现了相同的动态架构,所以我可以在媒体播放器上提供 url,但我想在不使用服务器的情况下做到这一点。
-
可能是一个愚蠢的问题,但你试过
new FileInputStream(new CipherInputStream(),)当然为RC4配置CipherInputStream -
如果程序无法对数据进行任何修改,则加密类型无关紧要。首先考虑主要问题 - 如何修改正在读取的数据。
-
@st0le 我也尝试过使用 cipherinputstream。一个问题是一些 android 版本/手机没有 RC4 的本机实现,所以我必须自己实现它。此外,FileInputStream 没有允许您使用另一个输入流实例化它的构造函数。我也无法将 CipherInputStream 设置为 dataSource,因为它没有 getFD() 方法。
标签: android media-player fileinputstream