Beispiel #1
0
        private void ProcessMessage(AntMediaSignalingMessage msg)
        {
            switch (msg.command)
            {
            case "start":
                OnStart.Invoke(msg.streamId);
                break;

            case "takeConfiguration":
                if (msg.type == "offer")
                {
                    OnOffer.Invoke(msg);
                }
                else if (msg.type == "answer")
                {
                    OnAnswer.Invoke(msg);
                }
                break;

            case "takeCandidate":
                OnIceCandidate.Invoke(msg);
                break;

            case "error":
                OnSignalingError.Invoke(msg.definition);
                break;
            }
        }
Beispiel #2
0
        private void send(AntMediaSignalingMessage msg)
        {
            var json    = JsonConvert.SerializeObject(msg, Formatting.Indented, jsonSettings);
            var logJson = string.Join("\n", json.Split('\n').Select(x => $"> {x}"));

            ws.Send(json);
        }
Beispiel #3
0
        public void Stop(string streamId)
        {
            var msg = new AntMediaSignalingMessage
            {
                command  = "stop",
                streamId = streamId
            };

            send(msg);
        }
Beispiel #4
0
        public void Play(string streamId)
        {
            var msg = new AntMediaSignalingMessage
            {
                command  = "play",
                streamId = streamId
            };

            send(msg);
        }
Beispiel #5
0
        public void SendDesc(string streamId, string type, string sdp)
        {
            var msg = new AntMediaSignalingMessage
            {
                command  = "takeConfiguration",
                streamId = streamId,
                type     = type,
                sdp      = sdp
            };

            send(msg);
        }
Beispiel #6
0
        public void Publish(string streamId)
        {
            var msg = new AntMediaSignalingMessage
            {
                command  = "publish",
                streamId = streamId,
                video    = true,
                audio    = false
            };

            send(msg);
        }
Beispiel #7
0
        private void Signaling_OnIceCandidate(AntMediaSignalingMessage msg)
        {
            OnLogEvent.Invoke("Signaling OnIceCandidate", "");
            OnLogEvent.Invoke("AddIceCandidate", "");
            var candidate = new RTCIceCandidate(new RTCIceCandidateInit
            {
                candidate     = msg.candidate,
                sdpMLineIndex = msg.label,
                sdpMid        = msg.id
            });

            peer.AddIceCandidate(candidate);
        }
Beispiel #8
0
        public void SendIceCandidate(string streamId, string candidate, int sdpMLineIndex, string sdpMId)
        {
            var msg = new AntMediaSignalingMessage
            {
                command   = "takeCandidate",
                streamId  = streamId,
                label     = sdpMLineIndex,
                id        = sdpMId,
                candidate = candidate
            };

            send(msg);
        }
Beispiel #9
0
 private void Signaling_OnOffer(AntMediaSignalingMessage msg)
 {
     OnLogEvent.Invoke("Signaling OnOffer", "");
     connectPeer();
     CoroutineHandler.StartStaticCoroutine(setRemoteDesc(RTCSdpType.Offer, msg.sdp));
 }