Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
 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();
 }
Ejemplo n.º 3
0
        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
                    {
                    }
                }
            });
        }
Ejemplo n.º 4
0
 private void StartCamera(CaptureDevice selectedDevice)
 {
     this.chosenScreen = null;
     this.videoSource = new VideoCaptureDevice(selectedDevice.Id);
     this.videoSource.NewFrame += FrameReady;
     this.videoSource.Start();
 }
Ejemplo n.º 5
0
        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;
        }