音视频自定义加解密功能如何配置 C++ 编译环境

若开发者 App 此前没有使用过 C++ ,参考如下步骤配置编译环境并实现自定义加解密的虚函数

1. 参考 Android 官方文档 配置 NDK 和 CMake 编译环境

2. 拷贝融云基于 RTCLib SDK 的开源项目 rtc-quickdemo-android cpp文件夹下所有文件 到开发者 app src/main/cpp/ 目录

1.png

3.修改 app/build.gralde 编译脚本

android {
...
externalNativeBuild {
        cmake {
            path "src/main/cpp/CMakeLists.txt"
            version "3.10.2"
        }
    }
 ...
}

参照源码实现下面文件的函数,即可实现自定义音视频加解密功能。

实现custom_audio_frame_decryptor.cpp下面函数:

CustomAudioFrameDecryptor::Decrypt 开发者定义音频解密方法

CustomAudioFrameDecryptor::GetMaxPlaintextByteSize 根据音频密文长度,返回解密后数据的长度,底层用该返回值申请保存本次明文数据内容

实现custom_audio_frame_encryptor.cpp下面函数:

CustomAudioFrameEncryptor::Encrypt 开发者定义音频加密方法

CustomAudioFrameEncryptor::GetMaxCiphertextByteSize 根据音频明文长度,返回加密后数据的长度,底层用该返回值申请保存本次加密数据内容

实现custom_video_frame_decryptor.cpp下面函数:

CustomVideoFrameDecryptor::Decrypt 开发者定义视频解密方法

CustomVideoFrameDecryptor::GetMaxPlaintextByteSize 根据视频密文长度,返回解密后数据的长度,底层用该返回值申请保存本次明文数据内容

实现custom_video_frame_encryptor.cpp下面函数:

CustomVideoFrameEncryptor::Encrypt 开发者定义视频加密方法

CustomVideoFrameEncryptor::GetMaxCiphertextByteSize 根据视频明文长度,返回加密后数据的长度,底层用该返回值申请保存本次加密数据内容