我正在使用ExoPlayer从设备的SD卡播放媒体文件(mp4s .h264编码)。一些文件是DES加密的。我可以解密这些文件并获取一个inputStream,但是我不确定如何使用ExoPlayer播放这个inputStream。任何帮助,将不胜感激。如何使用ExoPlayer播放DES加密文件
protected void playVideo(File file) {
InputStream is;
if (file.getName().endsWith(".DES")) {
is = FileManager.decryptFile(file);
//what to do with this input stream?
}
Uri uri = Uri.parse(file.getAbsolutePath());
if (mPlayer != null) {
mPlayer.release();
}
mPlayer = new VideoPlayer(getRendererBuilder(uri));
mPlayer.addListener(this);
if (mLastPosition > 0) {
mPlayer.seekTo(mLastPosition);
}
mPlayer.prepare();
mPlayer.setSurface(mSurface);
mPlayer.setPlayWhenReady(true);
}
InputStream应写入临时文件,ExoPlayer会实际播放该文件。我正在尝试同样的事情,但问题是解密文件需要很多时间。您是否找到了将InputStream本身传递给Exo的解决方案? – 2015-09-18 09:51:35
我从来没有找到解决方案。当使用encfs挂载/卸载时,我们在整个SD卡上实施了加密。我仍然想弄清楚这一点,因为我认为这是更好的解决方案的一部分,但还没有时间深入研究。 – 2015-09-18 16:21:23