设为首页收藏本站

AnyChat技术支持论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 6513|回复: 0

AnyChat开放语音、视频流数据加密、解密接口,实现安全的视频通话

[复制链接]

249

主题

2967

帖子

9070

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9070
发表于 2014-4-29 10:27:35 | 显示全部楼层 |阅读模式
自AnyChat r4036版本开始,AnyChat开放语音、视频流数据加密、解密接口,由上层应用对底层的语音、视频数据流进行自主的加密、解密操作,实现安全的视频通话。其基本原理是:
    1、AnyChat通过回调函数的方式,将底层的语音、视频流数据(编码之后的数据)回调给上层应用;
    2、由上层应用实现加密、解密的操作,然后将加密、解密之后的数据拷贝到输出缓冲区;
    3、加密、解密完成之后,AnyChat再继续对输出缓冲区的数据进行后续的处理;
    4、加密、解密的算法由上层应用自定义;

下面以Android平台为例说明如何实现语音、视频数据的加密、解密流程:1、在视频通话Activity初始化SDK之后,开启数据加密、解密选项,并注册回调事件:
  1. anychat = new AnyChatCoreSDK();
  2. AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_CORESDK_DATAENCRYPTION, 1);
  3. anychat.SetBaseEvent(this);
  4. anychat.SetDataEncDecEvent(this);
复制代码
2、在视频通话Activity实现“AnyChatDataEncDecEvent”接口,:

  1. public int OnAnyChatDataEncDec(int userid, int flags, byte[] lpBuf, int dwLen, AnyChatOutParam outParam) {
  2.         if((flags & AnyChatDataEncDecEvent.BRAC_DATAENCDEC_FLAGS_ENCMODE) != 0) {
  3.                 if((flags & AnyChatDataEncDecEvent.BRAC_DATAENCDEC_FLAGS_AUDIO) != 0) {               // 对音频数据进行加密处理
  4.                         byte [] outarray = new byte [dwLen+100];
  5.                         // 对lpBuf中的数据进行加密,并将加密之后的数据保存到outarray数组中
  6.                         ......
  7.                         // 最后将加密之后的数据通过outParam返回给AnyChat内核
  8.                         outParam.SetByteArray(outarray);
  9.                 } else if((flags & AnyChatDataEncDecEvent.BRAC_DATAENCDEC_FLAGS_VIDEO) != 0) {        // 对视频数据进行加密处理
  10.                         ......
  11.                 }
  12.         } else if((flags & AnyChatDataEncDecEvent.BRAC_DATAENCDEC_FLAGS_DECMODE) != 0) {
  13.                 if((flags & AnyChatDataEncDecEvent.BRAC_DATAENCDEC_FLAGS_AUDIO) != 0) {                 // 对音频数据进行解密处理
  14.                         ......
  15.                 } else if((flags & AnyChatDataEncDecEvent.BRAC_DATAENCDEC_FLAGS_VIDEO) != 0) {        // 对视频数据进行解密处理
  16.                         ......
  17.                 }
  18.         }
  19.         return 0;  // 返回0表示加密、解密成功,否则表示出错
  20. }
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|AnyChat ( 粤ICP备13022410号-1 )  

GMT+8, 2024-3-29 14:37 , Processed in 0.126193 second(s), 25 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表