WebRTC RTCSessionDescription swift
我正在尝试使用swift中的WebRTC框架编写本机iOS应用程序。我遇到了一个问题,因为RTCSessionDescriptionLegate似乎已被弃用,我再也不能真正遵循这一点了 我想我已经走得很远了,但阻碍我前进的主要原因是我不知道如何创建sdp参数。 RTCSessionDescription(类型:。提供,sdp:)WebRTC RTCSessionDescription swift,swift,webrtc,Swift,Webrtc,我正在尝试使用swift中的WebRTC框架编写本机iOS应用程序。我遇到了一个问题,因为RTCSessionDescriptionLegate似乎已被弃用,我再也不能真正遵循这一点了 我想我已经走得很远了,但阻碍我前进的主要原因是我不知道如何创建sdp参数。 RTCSessionDescription(类型:。提供,sdp:) 如果有人能提供建议,我将非常感激 Swift 3.0 这是我创建SDP的解决方案 let constraints: RTCMediaConstraints? =
如果有人能提供建议,我将非常感激 Swift 3.0 这是我创建SDP的解决方案
let constraints: RTCMediaConstraints? = defaultPeerConnectionConstraints()
peerConnection: RTCPeerCo = factory?.peerConnection(withICEServers: iceServers, constraints: constraints, delegate: self)
let localStream: RTCMediaStream? = createLocalMediaStream() //get Media stream(video/audio)
peerConnection?.add(localStream)
//create offer for other opponent
if isInitiator {
peerConnection?.createOffer(with: self, constraints: defaultOfferConstraints())
print("create Offer")
}
在ICE服务器上
func defaultICEServer() -> [RTCICEServer] {
var iceServers = [RTCICEServer]()
let defaultSTUNServerURL = URL(string: Config.defaultSTUNServerUrl)
let defaultTURNServerURL = URL(string: Config.defaultTURNServerUrl)
let stunServ = RTCICEServer(uri: defaultSTUNServerURL, username: "", password: "")
let turnServ = RTCICEServer(uri: defaultTURNServerURL, username: "admin", password: "admin")
iceServers.append(stunServ!)
iceServers.append(turnServ!)
return iceServers
}
及
然后是呼叫代表
func peerConnection(_ peerConnection: RTCPeerConnection, didCreateSessionDescription sdp: RTCSessionDescription, error: Error?) {}
您可以使用sdp
发送其他用户。您应该将此sdp
设置为localDescription
,以便正确工作
peerConnection?.setLocalDescriptionWith(self, sessionDescription: sdp)
我希望我能帮上忙 这是我创建SDP的解决方案
let constraints: RTCMediaConstraints? = defaultPeerConnectionConstraints()
peerConnection: RTCPeerCo = factory?.peerConnection(withICEServers: iceServers, constraints: constraints, delegate: self)
let localStream: RTCMediaStream? = createLocalMediaStream() //get Media stream(video/audio)
peerConnection?.add(localStream)
//create offer for other opponent
if isInitiator {
peerConnection?.createOffer(with: self, constraints: defaultOfferConstraints())
print("create Offer")
}
在ICE服务器上
func defaultICEServer() -> [RTCICEServer] {
var iceServers = [RTCICEServer]()
let defaultSTUNServerURL = URL(string: Config.defaultSTUNServerUrl)
let defaultTURNServerURL = URL(string: Config.defaultTURNServerUrl)
let stunServ = RTCICEServer(uri: defaultSTUNServerURL, username: "", password: "")
let turnServ = RTCICEServer(uri: defaultTURNServerURL, username: "admin", password: "admin")
iceServers.append(stunServ!)
iceServers.append(turnServ!)
return iceServers
}
及
然后是呼叫代表
func peerConnection(_ peerConnection: RTCPeerConnection, didCreateSessionDescription sdp: RTCSessionDescription, error: Error?) {}
您可以使用sdp
发送其他用户。您应该将此sdp
设置为localDescription
,以便正确工作
peerConnection?.setLocalDescriptionWith(self, sessionDescription: sdp)
我希望,我能帮助你你能进一步帮助吗?你能进一步帮助吗?