private void OnStreamReceived(object sender, Session.StreamReceivedEventArgs e) { lock (_locker) { if (Session == null || Subscribers != null && Subscribers.ContainsKey(e.P1.StreamId)) { return; } Stream stream = e.P1; var builder = new Subscriber.Builder(CrossCurrentActivity.Current.AppContext, stream); SubscriberKit subscriberKit = builder.Build(); subscriberKit.Connected += OnSubscriberConnected; subscriberKit.StreamDisconnected += OnStreamDisconnected; subscriberKit.SubscriberDisconnected += OnSubscriberDisconnected; subscriberKit.VideoDisabled += OnSubscriberVideoDisabled; subscriberKit.VideoEnabled += OnSubscriberVideoEnabled; subscriberKit.SetStyle(BaseVideoRenderer.StyleVideoScale, BaseVideoRenderer.StyleVideoFill); subscriberKit.SubscribeToAudio = IsAudioSubscriptionEnabled; subscriberKit.SubscribeToVideo = IsVideoSubscriptionEnabled; Session.Subscribe(subscriberKit); Subscribers?.Add(stream.StreamId, subscriberKit); OnSubscriberAdded(stream.StreamId); builder.Dispose(); } }
private void OnStreamCreated(object sender, Session.StreamReceivedEventArgs e) { lock (_locker) { if (Session == null || SubscriberKit != null) { return; } SubscriberKit = new Subscriber.Builder(CrossCurrentActivity.Current.AppContext, e.P1).Build(); SubscriberKit.Connected += OnSubscriberDidConnectToStream; SubscriberKit.VideoDisabled += OnSubscriberVideoDisabled; SubscriberKit.VideoEnabled += OnSubscriberVideoEnabled; SubscriberKit.SetStyle(BaseVideoRenderer.StyleVideoScale, BaseVideoRenderer.StyleVideoFill); SubscriberKit.SubscribeToAudio = IsAudioSubscriptionEnabled; SubscriberKit.SubscribeToVideo = IsVideoSubscriptionEnabled; SubscriberUpdated?.Invoke(); Session.Subscribe(SubscriberKit); } }
private void SetVideoScaleStyle(SubscriberKit subscriberKit) => subscriberKit.SetStyle(BaseVideoRenderer.StyleVideoScale, MapVideoScaleStyle(SubscriberVideoScaleStyle));