private void FHelloCXP_Load(object sender, System.EventArgs e)
        {
            // ConferenceAPI to autoplay any incoming streams
            Conference.AutoPlayLocal = true;
            Conference.AutoPlayRemote = true;

            // Tell ConferenceApi who the calling form is so it knows how to send events to the form on the correct thread
            Conference.CallingForm = this;

            // ConferenceAPI to autoposition any new windows
            Conference.AutoPosition = Conference.AutoPositionMode.Tiled;

            // Don't connect to a Venue Service; create a local venue and join it.
            Conference.VenueServiceWrapper.VenueServiceUrl = null;
            Venue localVenue = Conference.VenueServiceWrapper.CreateRandomMulticastVenue("Local Venue", null);
            Conference.JoinVenue( localVenue );

            // Send audio and video streams
            FilterInfo[] cameras = VideoSource.Sources();

            if (cameras.Length > 0)
            {
                VideoCapability vc = new VideoCapability(cameras[0]);
                vc.ActivateCamera();
                vc.Send();
            }
        }
示例#2
0
        private void AutoSendAV()
        {
            // Determine if the form is shared
            string[] linkedCamera = AVReg.ValueNames(AVReg.LinkedCamera);
            if (linkedCamera != null)
            {
                Debug.Assert(linkedCamera.Length <= 1);
            }

            // Create the audio capability
            FilterInfo[] mics = AudioCapability.SelectedMicrophones();
            Debug.Assert(mics.Length <= 1);  // For now we only support 1

            AudioCapability ac = null;
            foreach (FilterInfo fi in mics)
            {
                ac = new AudioCapability(fi);
            }

            // Create the video capabilities and start sending their data
            foreach (FilterInfo fi in VideoCapability.SelectedCameras())
            {
                VideoCapability vc = new VideoCapability(fi);

                // Set the shared form ID
                if (ac != null && linkedCamera != null && linkedCamera.Length > 0)
                {
                    if (fi.Moniker == linkedCamera[0])
                    {
                        Guid sharedFormID = Guid.NewGuid();
                        ac.SharedFormID = sharedFormID;
                        vc.SharedFormID = sharedFormID;
                    }
                }

                try
                {
                    vc.ActivateCamera();
                    vc.Send();
                }
                catch (Exception)
                {
                    vc.Dispose();

                    MessageBox.Show(string.Format("ConferenceXP was unable to send video from " +
                        "the device - {0}.  See the ConferenceAPI Event Log for details.", vc.Name),
                        "Unable to send video", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }

            // Start sending the audio data
            try
            {
                if (ac != null)
                {
                    ac.ActivateMicrophone();
                    ac.Send();
                }
            }
            catch (Exception)
            {
                ac.Dispose();

                MessageBox.Show(string.Format("ConferenceXP was unable to send audio from " +
                    "the device - {0}.  See the ConferenceAPI Event Log for details.", ac.Name),
                    "Unable to send audio", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
示例#3
0
        private void AutoSendAV()
        {
            // Determine if the form is shared
            string[] linkedCamera = AVReg.ValueNames(AVReg.LinkedCamera);
            if (linkedCamera != null)
            {
                Debug.Assert(linkedCamera.Length <= 1);
            }

            // Create the audio capability
            FilterInfo[] mics = AudioCapability.SelectedMicrophones();
            Debug.Assert(mics.Length <= 1);  // For now we only support 1

            AudioCapability ac = null;
            foreach (FilterInfo fi in mics)
            {
                ac = new AudioCapability(fi);
                ac.FecEnabled = enableAudioFec;
            }

            // Create the video capabilities and start sending their data
            foreach (FilterInfo fi in VideoCapability.SelectedCameras())
            {
                VideoCapability vc = new VideoCapability(fi);
                vc.FecEnabled = enableVideoFec;

                // Set the shared form ID
                if (ac != null && linkedCamera != null && linkedCamera.Length > 0)
                {
                    if (fi.Moniker == linkedCamera[0])
                    {
                        Guid sharedFormID = Guid.NewGuid();
                        ac.SharedFormID = sharedFormID;
                        vc.SharedFormID = sharedFormID;
                    }
                }

                try
                {
                    vc.ActivateCamera();
                    vc.Send();
                }
                catch (Exception)
                {
                    vc.Dispose();

                    RtlAwareMessageBox.Show(this, string.Format(CultureInfo.CurrentCulture,
                        Strings.SendVideoErrorText, vc.Name), Strings.SendVideoErrorTitle, MessageBoxButtons.OK,
                        MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, (MessageBoxOptions)0);
                }
            }

            // Start sending the audio data
            try
            {
                if (ac != null)
                {
                    ac.ActivateMicrophone();
                    ac.Send();
                }
            }
            catch (Exception)
            {
                ac.Dispose();

                RtlAwareMessageBox.Show(this, string.Format(CultureInfo.CurrentCulture, Strings.SendAudioErrorText,
                    ac.Name), Strings.SendAudioErrorTitle, MessageBoxButtons.OK, MessageBoxIcon.Error,
                    MessageBoxDefaultButton.Button1, (MessageBoxOptions)0);
            }
        }