媒体流加密 - 音视频通话 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));