首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在sdp描述中添加ICE候选人

如何在sdp描述中添加ICE候选人
EN

Stack Overflow用户
提问于 2021-12-29 15:43:32
回答 1查看 697关注 0票数 0

我正在开发一个本地的android应用程序,它使用webrtc (更确切地说是一个DataChannel )将数据发送给另一个人。它在两部android手机之间工作,在这种情况下使用ICE滴流技术。

但是现在我正试图在android手机和浏览器之间建立一个连接(在我的电脑中是一个Chrome实例,在这个例子中)。

问题是,我在js中使用一个库,它不处理通过websocket接收到的候选人的消息,它只处理已经在sdp中的候选人,如果他们收到了另一条消息,他们就会被丢弃(我知道,很糟糕的实现)。我希望能够在不摆脱这个库的情况下处理这个问题,而现在浏览器对浏览器来说工作得很好。

因此,我的问题是:在安卓系统中,一旦我在onIceCandidate( IceCandidate iceCandidate )上得到了候选人,我就会通过websocket发送他们。我更改了它,我不会发送它们(注释代码),而且我会推迟通过websocket发送服务,只在onIceGatheringChange( PeerConnection.IceGatheringState iceGatheringState )返回COMPLETE之后才发送。但是即使在等待的情况下,sdp的描述也不包含任何关于冰候选的内容,就像没有候选人可用一样.还有a=ice-options:trickle renomination,我不知道是谁在设置这个选项,也不知道它是否可以更改。

sdp描述应该是在创建后更改吗?我发现,无论什么情况,onCreateSuccess( SessionDescription sdp )中的设置都是一样的。

我还尝试了另一种方法,将iceCandidatePoolSize设置为1,以便在创建招聘机会之前获得候选人,但它没有改变任何事情。

我是不是遗漏了什么?sdp真的只有等待候选人才能改变吗?还是我需要以某种方式阻止涓涓细流?我没能找到这个信息。

谢谢你!!

EN

Stack Overflow用户

发布于 2022-01-15 21:57:25

也许迟了回复,但我还是会回答的。最近也面临同样的问题。以这种方式解决了这个问题:在createLocalPeerConnection中,需要添加一个方法:

代码语言:javascript
运行
复制
  @Override
        public void onIceGatheringChange(PeerConnection.IceGatheringState iceGatheringState) {
            super.onIceGatheringChange(iceGatheringState);
            if(iceGatheringState == PeerConnection.IceGatheringState.COMPLETE) {
                createLoclOffer(sdpConstraints);
            }
        }

在有条件的情况下,检查候选人集合的状态,然后调用sdp提交方法。

值:

对等连接刚刚创建,还没有进行任何网络连接。

ICE代理正在收集连接的候选人。

完成洲际交易所代理已经完成收集候选人。如果发生需要收集新候选人的事件,例如添加新的界面或添加新的ICE服务器,则状态将恢复为收集这些候选人。

请注意,为了收集冰候选,需要一个已经形成的sdp。

我找到了另一个解决问题的方法。如果你等待完整状态的收集冰候选,那么它需要很长的时间。因此,您可以设置一个时间计数器(2秒就足够了),在时间过去之后,使用建议调用该方法。

代码语言:javascript
运行
复制
 new CountDownTimer(2000, 1000) {

        
        public void onTick(long millisUntilFinished) {

        }
        
        public void onFinish() {
            createLoclOffer(sdpConstraints);
        }
    }
            .start();
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70521688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档