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(); } }
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); } }
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); } }