Онлайн AES-шифрованный поток с ExoPlayer в Android - PullRequest
0 голосов
/ 13 апреля 2020

Так что я новичок в ExoPlayer , и я использую ExoPlayer v2.11.3 для воспроизведения зашифрованных видео. Я проверил этот вопрос здесь , но это не помогло мне сделать это, так как это старый пост с 2017 года!

Что я думаю, что мне нужно создать собственный DataSource из "DefaultHttpDataSource".

Я использую этот метод "Encrypt()" для шифрования AES:

  private static void encrypt() throws IOException, NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, InvalidAlgorithmParameterException {
        if (hasFile()) {
            Log.d("Encrypt", "encrypted file found, no need to recreate");
            return;
        }
        // Video Reading.
        FileInputStream fis = new FileInputStream(toBeEncryptedFile);
        // This stream write the encrypted video. This stream will be wrapped by another stream.
        FileOutputStream fos = new FileOutputStream(encryptedFile);
        // Create cipher
        cipher = Cipher.getInstance(AES_TRANSFORMATION);
        cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, ivParameterSpec);
        // Wrap the output stream
        CipherOutputStream cos = new CipherOutputStream(fos, cipher);
        // Write bytes
        byte[] buffer = new byte[1024 * 1024];
        int bytesRead;
        while ((bytesRead = fis.read(buffer)) != -1) {
            cos.write(buffer, 0, bytesRead);
        }
        // Flush and close streams.
        cos.flush();
        cos.close();
        fis.close();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...