Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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")
- }
- 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 defaultPeerConnectionConstraints() -> RTCMediaConstraints {
- let optionalConstraints: [Any] = [RTCPair(key: "DtlsSrtpKeyAgreement", value: "true")]
- let constraints = RTCMediaConstraints(mandatoryConstraints: nil, optionalConstraints: optionalConstraints)
- return constraints!
- }
- func peerConnection(_ peerConnection: RTCPeerConnection, didCreateSessionDescription sdp: RTCSessionDescription, error: Error?) {}
- peerConnection?.setLocalDescriptionWith(self, sessionDescription: sdp)
Add Comment
Please, Sign In to add comment