媒体流加密 - 音视频通话 2.0 (163.com)

//step1:初始化引擎。
NERtcEx.getInstance().init(Context context, String appkey, NERtcCallback callback, NERtcOption option);

//step2:准备如下自定义加解密类,需要实现NERtcPacketObserver接口。
private NERtcPacketObserver mPacketObserver =  new NERtcPacketObserver() {
    //发送音频包回调
    @Override
    public boolean onSendAudioPacket(NERtcPacket packet) {
        //TODO: 自定义加密处理
        return true; //是否保留该包,true为保留,false为丢弃
    }

    @Override
    //发送视频包回调
    public boolean onSendVideoPacket(NERtcPacket packet) {
        //TODO: 自定义加密处理
        return true; //是否保留该包,true为保留,false为丢弃
    }

    @Override
    //接收音频包回调
    public boolean onReceiveAudioPacket(NERtcPacket packet) {
        //TODO: 自定义解密处理
        return true; //是否保留该包,true为保留,false为丢弃
    }

    @Override
    //接收视频包回调
    public boolean onReceiveVideoPacket(NERtcPacket packet) {
        //TODO: 自定义解密处理
        return true; //是否保留该包,true为保留,false为丢弃
    }
});
//step3:enable Encryption, before joinChannel
NERtcEncryptionConfig encryptionConfig = new NERtcEncryptionConfig(NERtcEncryptionConfig.EncryptionMode.EncryptionModeCustom, null, mPacketObserver);
int ret = NERtcEx.getInstance().enableEncryption(true, encryptionConfig));

//step3:加入rtc房间,开始音视频业务。
int ret = NERtcEx.getInstance().joinChannel(String token, String channelName, long uid);

//step4: disable (default option), before joinChannel
NERtcEncryptionConfig encryptionConfig = new NERtcEncryptionConfig(NERtcEncryptionConfig.EncryptionMode.EncryptionModeCustom, null, null);
int ret = NERtcEx.getInstance().enableEncryption(false, encryptionConfig));