如何使用 ExoPlayer 播放 DES 加密文件
How do I play a DES encrypted File using ExoPlayer
我正在使用 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);
}
您可以编写接受 InputStream 的自定义 DataSource:对于 DataSource,您只需实现 open(DataSpec)、close() 和 read(byte[] buffer, int offset, int readLength)。令我惊讶的是,ExoPlayer 中似乎没有任何可用的实现。对于他们的瑞士军刀来说,这似乎是显而易见的 blade。
我正在使用 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);
}
您可以编写接受 InputStream 的自定义 DataSource:对于 DataSource,您只需实现 open(DataSpec)、close() 和 read(byte[] buffer, int offset, int readLength)。令我惊讶的是,ExoPlayer 中似乎没有任何可用的实现。对于他们的瑞士军刀来说,这似乎是显而易见的 blade。