为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 peerConnection.CreateAnswer() 中设置

如何在 peerConnection.CreateAnswer() 中设置

摇曳的蔷薇 2021-09-03 21:32:50
我从互联网上引用并混合了代码,一切正常,但是当我在 pc.createAnswer() 中传递 new MediaContraints() 时,没有调用 pc.setLocalDescription() 方法。但是当我传递像“offerToRecieveAudio”和“video”这样的约束是真的时,会给出像无效约束这样的错误。谁能帮帮我。谢谢 private void createAnswer(){    Log.e(TAG,"Create Answer...............................");    peerConnection.createAnswer(new CustomSdpObserver("create Answer")    {        @Override        public void onCreateSuccess(SessionDescription sessionDescription)        {            super.onCreateSuccess(sessionDescription);            Log.e(TAG,"onCreateAnswer...............................");            peerConnection.setLocalDescription(new CustomSdpObserver("create Answer Local Description")            {                @Override                public void onCreateSuccess(SessionDescription sessionDescription)                {                    super.onCreateSuccess(sessionDescription);                    try {                        JSONObject json = new JSONObject();                        JSONObject jsonObject = new JSONObject();                        JSONObject sessDescObj = new JSONObject();                        sessDescObj.put("sdp",sessionDescription.description);                        sessDescObj.put("type","ANSWER");                        json.put("type", "rtc");                        json.put("dest", CustomWebSocketListener.fromUser);                        jsonObject.put("sdp", sessDescObj);                        json.put("data",jsonObject);                        Log.d(TAG,"Answer Success " + json.toString());                        ws1.send(json.toString());                    } catch (JSONException e) {                        e.printStackTrace();                    }                }            }, sessionDescription);        }        @Override        public void onCreateFailure(String s)        {            super.onCreateFailure(s);            Log.e(TAG,"onCreateFailure Answer " + s);        }
查看完整描述

2 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

在Kotlin你可以帮助从下面的例子:


private fun PeerConnection.answer(sdpObserver: SdpObserver) {

    val constraints = MediaConstraints().apply {

        mandatory.add(MediaConstraints.KeyValuePair("OfferToReceiveVideo", "true"))

    }


    createAnswer(object : SdpObserver by sdpObserver {

        override fun onCreateSuccess(p0: SessionDescription?) {

            setLocalDescription(object : SdpObserver {

                override fun onSetFailure(p0: String?) {

                    Log.i("RTCClient", "answer onSetFailure")

                }


                override fun onSetSuccess() {

                    Log.i("RTCClient", "answer onSetSuccess")

                }


                override fun onCreateSuccess(p0: SessionDescription?) {

                    Log.i("RTCClient", "answer onCreateSuccess")

                }


                override fun onCreateFailure(p0: String?) {

                    Log.i("RTCClient", "answer onCreateFailure")

                }

            }, p0)

            sdpObserver.onCreateSuccess(p0)

        }

    }, constraints)

}



查看完整回答
反对 回复 2021-09-03
  • 2 回答
  • 0 关注
  • 259 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信