我正在使用ExoPlayer从设备的SD卡播放媒体文件(mp4s .h264编码)。一些文件是DES加密的。我可以解密文件并返回一个inputStream,但后来我不确定如何使用ExoPlayer播放这个inputStream。任何帮助,将不胜感激。
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);
}
答案 0 :(得分:1)
您可以编写一个接受InputStream的自定义DataSource:对于DataSource,您只需实现open(DataSpec),close()和read(byte [] buffer,int offset,int readLength)。让我感到惊讶的是,ExoPlayer中似乎没有任何实现。对于他们的瑞士军刀来说,这似乎是一个明显的刀刃。