iOS Swift WebRT C - Не удалось установить удаленное предложение. Sdp: Не удалось установить параметры отправки описания удаленного видео. - PullRequest
0 голосов
/ 03 февраля 2020

Я пытаюсь сделать видеозвонок через webRT C между iPhone устройствами. Одно из приложений создает предложение SDP, как показано ниже. Когда я пытался установить этот SDP, я получаю сообщение об ошибке в другом приложении как

Error Domain = org.webrt c .RTCPeerConnection Code = -1 "Не удалось установить удаленное предложение sdp: Не удалось установить удаленное описание видео отправить параметры. " UserInfo = {NSLocalizedDescription = Не удалось установить удаленное предложение sdp: Не удалось установить параметры отправки удаленного описания видео.}

Ниже приведен код, используемый для установки предложения и создания ответа. Вторая строка self.peerConnection?.setRemoteDescription выдает ошибку.

 let sessionDescription = RTCSessionDescription(type: .offer, sdp: remoteSdp)
        self.peerConnection?.setRemoteDescription(sessionDescription, completionHandler: { [weak self] (error) in
            guard let this = self else { return }
            if let error = error {
                this.delegate?.webrtcClient(client: this, didReceiveError: error)
            } else {
                this.handleRemoteDescriptionSet()
                // create answer
                peerConnection.answer(for: this.callConstraint, completionHandler:
                    { (sdp, error) in
                        if let error = error {
                            this.delegate?.webrtcClient(client: this, didReceiveError: error)
                        } else {
                            this.handleSdpGenerated(sdpDescription: sdp)
                        }
                })
            }
        })

Ниже приводится формат предложения SDP

v=0

o=- 271054486825926104 2 IN IP4 127.0.0.1

s=-

t=0 0

a=group:BUNDLE video

a=msid-semantic: WMS ARDAMS

m=video 9 UDP/TLS/RTP/SAVPF 100 101 116 117 96

c=IN IP4 0.0.0.0

a=rtcp:9 IN IP4 0.0.0.0

a=ice-ufrag:mwCLNm7ZLzmDrtCu

a=ice-pwd:+alfGXoarzyKjISWRYAGyIH4

a=fingerprint:sha-256 44:0D:11:54:EC:62:CD:51:D0:E3:BB:A5:47:35:D1:27:48:4E:08:3B:AD:98:72:98:02:BA:06:C8:CC:12:0E:C0

a=setup:actpass

a=mid:video

a=extmap:2 urn:ietf:params:rtp-hdrext:toffset

a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time

a=extmap:4 urn:3gpp:video-orientation

a=sendrecv

a=rtcp-mux

a=rtpmap:100 VP8/90000

a=rtcp-fb:100 ccm fir

a=rtcp-fb:100 nack

a=rtcp-fb:100 nack pli

a=rtcp-fb:100 goog-remb

a=rtpmap:101 VP9/90000

a=rtcp-fb:101 ccm fir

a=rtcp-fb:101 nack

a=rtcp-fb:101 nack pli

a=rtcp-fb:101 goog-remb

a=rtpmap:116 red/90000

a=rtpmap:117 ulpfec/90000

a=rtpmap:96 rtx/90000

a=fmtp:96 apt=100

a=ssrc-group:FID 1767367305 3714792746

a=ssrc:1767367305 cname:9wPGj45IHVxtvO6N

a=ssrc:1767367305 msid:ARDAMS ARDAMSv0

a=ssrc:1767367305 mslabel:ARDAMS

a=ssrc:1767367305 label:ARDAMSv0

a=ssrc:3714792746 cname:9wPGj45IHVxtvO6N

a=ssrc:3714792746 msid:ARDAMS ARDAMSv0

a=ssrc:3714792746 mslabel:ARDAMS

a=ssrc:3714792746 label:ARDAMSv0

1 Ответ

0 голосов
/ 04 февраля 2020

В вашем предложении sdp нет кандидата . В вашем поколении sdp вы должны ждать, чтобы сгенерировать кандидата. Вы можете генерировать всех кандидатов одновременно или собирать их постепенно . Во всяком случае, я не видел обмена ледяными кандидатами. Может быть, проверить какой-нибудь проект с открытым исходным кодом.

...