WebRTC错误[1]Failed to set remote answer sdp: Called in wrong state: stable

WebRTC错误[1]Failed to set remote answer sdp: Called in wrong state: stable

程序之美

WebRTC是近年来发展比较好的开源代码集群。是web长期开源开发的一个新启元,是近年来Web开发的最重要创新。WebRTC允许Web开发者不需要复杂的代码,仅通过调用几个简单的接口就可以实现在web应用中视频聊天或者点对点数据传输。

WebRTC目前支持Chrome、Firefox和Opera,后续会支持更多的浏览器,它有能力达到数十亿的设备。不仅仅在浏览器,在移动平台,比如Android或者IOS,WebRTC也丝毫不逊色,允许本地和web应用间相互协作。

WebRTC虽然使用起来比较简单,但是如果不按照流程接口调用,一样会出现很多意向不到的问题,因为WebRTC的代码架构比较复杂和庞大,出现问题后进行排查难度比较大,故而,根据使用过程中的进行整理,希望收益于自己,帮助于别人。

引入WebRTC

对于Android studio工程引入非常简单,仅需加入依赖包就可以了,在build.gradle中加入:

dependencies {
	implementation 'org.webrtc:google-webrtc:1.0.20723'
}

加入相应的权限:

<uses-feature android:name="android.hardware.camera"/>
<uses-feature android:name="android.hardware.camera.autofocus"/>
<uses-feature
        android:glEsVersion="0x00020000"
        android:required="true"/>

<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CAPTURE_VIDEO_OUTPUT"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

错误1:

SdpObserver: Failed to set remote answer sdp: Called in wrong state: stable

解决方案:
区分清楚是本地的PeerConnection,还是对方的PeerConnection
本地的和对方的调用流程是不一样的。

Failed to set local answer sdp: Failed to apply the description for m= section with mid=‘audio’: Offerer must use actpass value or current negotiated role for setup attribute.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
错误信息"failed to set remote answer sdp: called in wrong state: stable"表示在错误的状态下调用了设置远程应答SDP的操作。 这个错误通常在WebRTC(Web实时通信)中使用。WebRTC是一种用于在Web浏览器之间实现实时音视频通信的技术。在WebRTC中,SDP(会话描述协议)用于协商和交换音视频连接参数。 在WebRTC中,通信的各个阶段被描述为不同的状态,比如"stable"(稳定状态)、"offering"(主动发起状态)和"answering"(应答状态)等。 "failed to set remote answer sdp: called in wrong state: stable"错误通常出现在以下情况下: 1. 在"stable"状态下调用了设置远程应答SDP的方法,而应该在"answering"状态下进行该操作。 解决方法是,在正确的阶段调用该方法。需要确保在应答方收到远程主动发起的连接描述SDP后才调用设置远程应答SDP的方法。通常是在收到SDP后的回调函数中进行该操作。 2. 可能存在其他错误导致在设置远程应答SDP时出现"called in wrong state: stable"错误。 解决方法是检查代码逻辑,确保在正确的时机调用该方法,并排除其他可能引起错误的问题。 总之,在WebRTC中,出现"failed to set remote answer sdp: called in wrong state: stable"错误通常是由于在错误的状态下调用了设置远程应答SDP的方法。正确的解决方法是在正确的状态下进行该操作,并检查其他可能引起错误的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五一编程

程序之路有我与你同行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值