最近项目用到了agora 来进行语音和视频通话。官网上写的是四行代码实现语音。其实的话中间还是有些问题存在的。就是建议使用demo里的workthread 和他的eventhandler 因为文档中说明 创建RtcEngine 和调用最好在一个线程。所以最后自己创建一个子线程用来创建对象和调用 join 什么的。这样不会有问题。
使用中遇到一个问题就是。两个手机无法加入一个频道内。不互通。后来发现是join里面有个参数uid 写死了。而一个频道内每个用户的uid 都是唯一的这个问题大家要注意。
而且当其他用户加入之后 并且获取到对方的第一针画面的时候再设置他的remoteview 这样比较符合逻辑。在eventhandler 的onFirstRemoteVideoDecoded 方法回调内 写
说了这么多我还是把流程简单说下。文档其实也很清晰。
第一步把下载的sdk demo里libs 下的拷到你项目对应目录。如果项目没有配置ndk 要配置ndk
第二步 就是按照文档 配置到join 加入频道。
rtcEngine=mp.create(this);
rtcEngine.enableAudio();
rtcEngine.enableVideo();
SurfaceView surfaceView=RtcEngine.CreateRendererView(getApplicationContext());
RelativeLayout.LayoutParams rlp=newRelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,
RelativeLayout.LayoutParams.MATCH_PARENT);
rl_local.addView(surfaceView,rlp);
rtcEngine.setEncryptionSecret("nh"