예제 #1
0
        public async Task SendCand(RTCIceCandidate cand)
        {
            var m = new SendCadidatModel
            {
                candidate = new CandidateModel
                {
                    candidate     = cand.Candidate,
                    sdpMid        = cand.SdpMid,
                    sdpMlineindex = cand.SdpMLineIndex,
                },

                uid = Uid,
            };
            await Http.PostAsnyc(m, "sendCand");
        }
예제 #2
0
        private async void Conn_OnIceCandidateAsync(RTCPeerConnectionIceEvent __param0)
        {
            var Candidate = __param0.Candidate;
            var m         = new SendCadidatModel();

            m.candidate = new CandidateModel
            {
                candidate     = Candidate.Candidate,
                sdpMid        = Candidate.SdpMid,
                sdpMlineindex = Candidate.SdpMLineIndex
            };
            m.uid = Uid;
            Candidates.Add(m);
            await SendCandidate(m);

            //await SendCand(Candidate);
        }
예제 #3
0
        public async Task CreateReceiver(MediaStream mediaStream, long fromUid)
        {
            var conn = new RTCPeerConnection(RtcConfig);

            CurrentRoom.Recvs.Add(fromUid, conn);
            CurrentRoom.Recvs[fromUid].AddStream(mediaStream);
            CurrentRoom.Recvs[fromUid].OnIceCandidate += async(p) =>
            {
                var Candidate = p.Candidate;
                var m         = new SendCadidatModel();
                m.candidate = new CandidateModel
                {
                    candidate     = Candidate.Candidate,
                    sdpMlineindex = Candidate.SdpMLineIndex,
                    sdpMid        = Candidate.SdpMid,
                };
                m.uid     = Uid;
                m.fromUid = fromUid;
                Candidates.Add(m);
                await SendCandidate(m);
            };
            CurrentRoom.Recvs[fromUid].OnAddStream += (p) =>
            {
                var stream = p.Stream;

                var videotracks = stream.GetVideoTracks();


                var source = LocalMedia.CreateMediaSource(videotracks.FirstOrDefault(), stream.Id);

                RemoteMediaPlayer.SetMediaStreamSource(source);

                RemoteMediaPlayer.Play();
            };

            await CreatOffer(Uid, fromUid);
        }
예제 #4
0
        public async Task <string> SendCandidate(SendCadidatModel m)
        {
            return(await Http.PostAsnyc(m, "sendCandidate"));

            //return await Http.PostAsnyc(m, "reflectCand");
        }