java声网_声网Agora集成踩坑录

在项目中集成Agora SDK进行语音视频通话时,遇到一些问题。官方推荐在特定线程中创建RtcEngine并调用join方法。错误地将uid设为固定值导致无法加入同一频道。解决方法是在onFirstRemoteVideoDecoded回调中设置remoteView。务必确保在主线程设置SurfaceView,并在连接成功后设置远程视频。
摘要由CSDN通过智能技术生成

最近项目用到了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"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值