在安卓系统中使用ExoPlayer在线AES加密流媒体

问题描述 投票:0回答:1

所以我是一个初学者 ExoPlayer而我用的是 ExoPlayer v2.11.3 播放加密视频.我检查了这个问题。此处但它没有帮助我做到这一点,因为它是一个老帖子自2017年以来!我认为,我需要创建自定义的数据源从" "。

我认为,我需要创建一个自定义的数据源从"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();
    }
android streaming aes exoplayer exoplayer2.x
1个回答
0
投票

你可以创建自定义的DataSource,同时覆盖Open()和close()。你可以创建数据输入流,并在同一方法中启动密码。

© www.soinside.com 2019 - 2024. All rights reserved.