예제 #1
0
        private void OnConnected(object sender, Session.ConnectedEventArgs e)
        {
            if (Session == null)
            {
                return;
            }

            ClearPublisher();

            using (var builder = new Publisher.Builder(CrossCurrentActivity.Current.AppContext)
                                 .Resolution(Publisher.CameraCaptureResolution.High)
                                 .VideoTrack(Permissions.HasFlag(OpenTokPermission.Camera))
                                 .AudioTrack(Permissions.HasFlag(OpenTokPermission.RecordAudio))
                                 .Name("XamarinOpenTok"))
            {
                PublisherKit = builder.Build();
                PublisherKit.PublishVideo = IsVideoPublishingEnabled;
                PublisherKit.PublishAudio = IsAudioPublishingEnabled;
                PublisherKit.SetStyle(BaseVideoRenderer.StyleVideoScale, BaseVideoRenderer.StyleVideoFill);
                PublisherKit.StreamCreated       += OnPublisherStreamCreated;
                PublisherKit.AudioFallbackEnabled = PublisherVideoType == OpenTokPublisherVideoType.Camera;
                PublisherKit.PublisherVideoType   = PublisherVideoType == OpenTokPublisherVideoType.Camera
                    ? PublisherKit.PublisherKitVideoType.PublisherKitVideoTypeCamera
                    : PublisherKit.PublisherKitVideoType.PublisherKitVideoTypeScreen;
                Session.Publish(PublisherKit);
                RaisePublisherUpdated();
            }
        }
예제 #2
0
        /**
         * <p>
         * Implementation of the {@link Supplier} interface that returns a newly created
         * {@link Publisher}.
         * </p><p>
         * The {@link Publisher.Builder} is passed a {@link Consumer} in its constructor which
         * basically triggers a call to {@link Network#setPublisher(Publisher)} with the newly
         * created {@link Publisher} - which must be available so that users can get a reference
         * to the new Publisher that is created when {@link Network#load()} is called.
         *
         * @return a new Publisher
         */
        public Publisher Get()
        {
            if (suppliedInstance == null)
            {
                Publisher.Builder <Subject <string> > builder =
                    Publisher.GetBuilder(p => network?.SetPublisher(p));

                headers.ForEach(line => builder.AddHeader(line));

                suppliedInstance = builder.Build();
                suppliedInstance.SetNetwork(network);
            }

            return(suppliedInstance);
        }
예제 #3
0
        private void OnConnected(object sender, Session.ConnectedEventArgs e)
        {
            if (Session == null || PublisherKit != null)
            {
                return;
            }

            using (var builder = new Publisher.Builder(CrossCurrentActivity.Current.AppContext).Name("XamarinOpenTok"))
            {
                PublisherKit = builder.Build();
                PublisherKit.PublishVideo = IsVideoPublishingEnabled;
                PublisherKit.PublishAudio = IsAudioPublishingEnabled;
                PublisherKit.SetStyle(BaseVideoRenderer.StyleVideoScale, BaseVideoRenderer.StyleVideoFill);
                PublisherKit.StreamCreated += OnPublisherStreamCreated;

                Session.Publish(PublisherKit);
                RaisePublisherUpdated();
            }
        }