Пример #1
0
        public RtpTransceiver AddTransceiver(MediaKind kind, RtpTransceiverDirection direction)
        {
            SafetyCheck();
            if (kind == MediaKind.Data)
            {
                throw new NotSupportedException();
            }

            var transceiverPtr = PeerConnectionInterop.AddTransceiver(_handle, kind == MediaKind.Audio, direction);

            if (transceiverPtr == IntPtr.Zero)
            {
                throw new AddTransceiverFailedException();
            }

            var tmp = new RtpTransceiver(transceiverPtr, _signallingThread);

            _knownTransceivers.Add(transceiverPtr, tmp);
            return(tmp);
        }
 public static extern bool TryGetCurrentDirection(RtpTransceiverSafeHandle rtpTransceiver, ref RtpTransceiverDirection outDirection);
 public static extern void SetDirection(RtpTransceiverSafeHandle rtpTransceiver, RtpTransceiverDirection direction);
 public static RTCRtpTransceiverDirection ToPlatformNative(this RtpTransceiverDirection nativePort) => (RTCRtpTransceiverDirection)nativePort;
 public static extern IntPtr AddTransceiver(PeerConnectionSafeHandle handle, [MarshalAs(UnmanagedType.I1)] bool isAudioTransceiver, RtpTransceiverDirection direction);