记录一个融云音视频比较坑的问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014476720/article/details/84788087

看知识库里面的工单,融云的人说用

RongCallClient.getInstance().getCallSession()

上面这个可以判断是否通话中,嗯,先当他说的是正确的

后来发现,只是判断null 不 null 这样的并不严谨,有时候很快的挂断通话或者对方没有接通直接挂断通话,RongCallClient.getInstance().getCallSession()这个是不为空的,

其实我的需求是,如果有通话中的会话,当点击音视频通话的入口或者正处于悬浮音视频通话时,就给出适当的提示,先让其关闭现有的才能再做相应的操作。

第一波测试:正常通话几秒钟,正常挂断,可以用getCallSession判断

第二波测试:A拨打B,之后A很快挂断, 此时 getCallSession 是不为空的

第三波测试:A拨打B,之后B直接挂断A,此时getCallSession是不为空的

第四波测试:A拨打B,正常通话,A点击缩小窗口通话,此时getCallSession不为空,这个是正常的

经过比对分析:activeTime这个字段,正常在通话中的时候是不为0,挂断通话的时候的是为0的

于是,判断是否真正通话中的做法是

 if (RongCallClient.getInstance().getCallSession() != null && RongCallClient.getInstance().getCallSession().getActiveTime() != 0) {
}

猜你喜欢

转载自blog.csdn.net/u014476720/article/details/84788087
今日推荐