Używam ExoPlayera do odtwarzania plików multimedialnych (kodowane mp4s .h264) z karty SD urządzenia. Niektóre pliki są szyfrowane DES. Mogę odszyfrować pliki i odzyskać inputStream, ale nie jestem pewien, jak odtwarzać ten inputStream przy użyciu ExoPlayera. Każda pomoc będzie doceniona.Jak odtwarzać plik zaszyfrowany DES za pomocą ExoPlayera
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 należy zapisać w pliku tymczasowym, który będzie faktycznie odtwarzany przez ExoPlayer. Próbuję tego samego, ale problem polega na tym, że odszyfrowanie pliku zajmuje dużo czasu. Czy znalazłeś rozwiązanie do przekazania samego InputStream do Exo? –
Nigdy nie znalazłem rozwiązania tego problemu. Zaimplementowaliśmy szyfrowanie na całej karcie SD po jej zamontowaniu/odmontowaniu za pomocą encfów. Nadal chciałbym to zrozumieć, ponieważ uważam, że jest to część lepszego rozwiązania, ale nie miałem czasu, aby naprawdę zagłębić się w to. –