private void ChangeAudioSource(CaptureDevice selectedAudioDevice) { if (selectedAudioDevice == null) { return; } StopAudio(); this.bufferedWaveProvider = new BufferedWaveProvider(waveFormat); var player = new WaveOut(); player.Init(bufferedWaveProvider); player.Play(); audioSource = new WaveInEvent { WaveFormat = waveFormat, DeviceNumber = int.Parse(selectedAudioDevice.Id) }; audioSource.DataAvailable += AudioAvailable; audioSource.StartRecording(); }
private void StartIPCam(CaptureDevice selectedDevice) { var stream = new JPEGStream(selectedDevice.Id); // create async video source var asyncSource = new AsyncVideoSource(stream); // set NewFrame event handler asyncSource.NewFrame += FrameReady; // start the video source asyncSource.Start(); }
private void StartScreen(CaptureDevice selectedDevice) { var selectedScreen = Screen.AllScreens.FirstOrDefault(x => x.DeviceName == selectedDevice.Id); if (selectedScreen == null) { return; } chosenScreen = selectedScreen; this.Width = (float)chosenScreen.Bounds.Width / 5; this.Height = (float)chosenScreen.Bounds.Height / 5; StopCamera(); Task.Run(async () => { while (screenMode) { try { var screenBitmap = ImageHelpers.CaptureScreen(screen: chosenScreen); FrameReady(this, new NewFrameEventArgs(screenBitmap)); await Task.Delay(1000 / 25); } catch { } } }); }
private void StartCamera(CaptureDevice selectedDevice) { this.chosenScreen = null; this.videoSource = new VideoCaptureDevice(selectedDevice.Id); this.videoSource.NewFrame += FrameReady; this.videoSource.Start(); }
private void ChangeVideoSource(CaptureDevice selectedDevice) { screenMode = selectedDevice.Type == CaptureDevice.Types.Screen; switch (selectedDevice.Type) { case CaptureDevice.Types.Camera: StartCamera(selectedDevice); break; case CaptureDevice.Types.Screen: StartScreen(selectedDevice); break; case CaptureDevice.Types.IPCam: StartIPCam(selectedDevice); break; } }
private void AudioSources_OnSelected(object sender, SelectionChangedEventArgs e) { var combo = sender as ComboBox; if (combo == null) { return; } SelectedAudioDevice = combo.SelectedItem as CaptureDevice; }