private void cbAudioInputDevice_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (cbAudioInputDevice.SelectedIndex != -1 && e != null && e.AddedItems.Count > 0) { AudioInputFormats.Clear(); var deviceItem = VideoCapture1.Audio_CaptureDevices().FirstOrDefault(device => device.Name == e.AddedItems[0].ToString()); if (deviceItem == null) { return; } var defaultValue = "PCM, 44100 Hz, 16 Bits, 2 Channels"; var defaultValueExists = false; foreach (string format in deviceItem.Formats) { AudioInputFormats.Add(format); if (defaultValue == format) { defaultValueExists = true; } } if (AudioInputFormats.Count > 0) { cbAudioInputFormat.SelectedIndex = 0; if (defaultValueExists) { cbAudioInputFormat.SelectedItem = defaultValue; } } AudioInputLines.Clear(); foreach (var line in deviceItem.Lines) { AudioInputLines.Add(line); } if (AudioInputLines.Count > 0) { cbAudioInputLine.SelectedIndex = 0; } btAudioInputDeviceSettings.IsEnabled = deviceItem.DialogDefault; } }
private void MainWindow_Activated(object sender, EventArgs e) { if (_initialized) { return; } Closing += Window_Closing; _initialized = true; CreateEngine(); Title += $" (SDK v{VideoCapture1.SDK_Version()})"; VideoCapture1.Debug_Dir = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "VisioForge"); tmRecording.Elapsed += (senderx, args) => { UpdateRecordingTime(); }; cbOutputFormat.SelectedIndex = 2; foreach (var device in VideoCapture1.Video_CaptureDevices()) { VideoInputDevices.Add(device.Name); } if (VideoInputDevices.Count > 0) { cbVideoInputDevice.SelectedIndex = 0; } cbVideoInputDevice_SelectionChanged(null, null); foreach (var device in VideoCapture1.Audio_CaptureDevices()) { AudioInputDevices.Add(device.Name); } if (AudioInputDevices.Count > 0) { cbAudioInputDevice.SelectedIndex = 0; cbAudioInputDevice_SelectionChanged(null, null); } AudioInputLines.Clear(); if (!string.IsNullOrEmpty(cbAudioInputDevice.SelectedItem.ToString())) { var deviceItem = VideoCapture1.Audio_CaptureDevices().FirstOrDefault(device => device.Name == cbAudioInputDevice.SelectedItem.ToString()); if (deviceItem != null) { foreach (var line in deviceItem.Lines) { AudioInputLines.Add(line); } if (AudioInputLines.Count > 0) { cbAudioInputLine.SelectedIndex = 0; } } } string defaultAudioRenderer = string.Empty; foreach (string audioOutputDevice in VideoCapture1.Audio_OutputDevices()) { AudioOutputDevices.Add(audioOutputDevice); if (audioOutputDevice.Contains("Default DirectSound Device")) { defaultAudioRenderer = audioOutputDevice; } } if (AudioOutputDevices.Count > 0) { if (string.IsNullOrEmpty(defaultAudioRenderer)) { cbAudioOutputDevice.SelectedIndex = 0; } else { cbAudioOutputDevice.SelectedItem = defaultAudioRenderer; } } edOutput.Text = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "VisioForge", "output.mp4"); }