#
Audio sources
Video Capture SDK .Net VideoCaptureCoreX VideoCaptureCore
You can get audio from the following sources:
- Audio capture devices
- Audio from speakers/headphones/system (loopback)
- IP cameras and other network streams
- Decklink devices
#
Audio capture devices
Enumerate audio capture devices.
var audioSources = await core.Audio_SourcesAsync();
foreach (var source in audioSources)
{
// add to some combobox
cbAudioInputDevice.Items.Add(source.DisplayName);
}
foreach (var device in core.Audio_CaptureDevices())
{
// add to some combobox
cbAudioInputDevice.Items.Add(device.Name);
}
Enumerate audio formats.
// find the device by name
var deviceItem = (await VideoCapture1.Audio_SourcesAsync()).FirstOrDefault(device => device.DisplayName == "Some device name");
if (deviceItem == null)
{
return;
}
// enumerate formats
foreach (var format in deviceItem.Formats)
{
cbAudioInputFormat.Items.Add(format.Name);
}
// find the device by name
var deviceItem = VideoCapture1.Audio_CaptureDevices().FirstOrDefault(device => device.Name == "Some device name");
// enumerate formats
foreach (var format in deviceItem.Formats)
{
cbAudioInputFormat.Items.Add(format);
}
Set audio capture device as a source.
// find the device by name
var deviceItem = (await VideoCapture1.Audio_CaptureDevices()).FirstOrDefault(device => device.DisplayName == "Device name");
if (deviceItem == null)
{
return;
}
// set the first format
AudioCaptureDeviceFormat format = formats[0].ToFormat();
// create audio source settings
IVideoCaptureBaseAudioSourceSettings audioSource = deviceItem.CreateSourceSettingsVC(format);
// set audio source
VideoCapture1.Audio_Source = audioSource;
// find the device by name
var deviceItem = VideoCapture1.Audio_CaptureDevices().FirstOrDefault(device => device.Name == "Some device name");
VideoCapture1.Audio_CaptureDevice = new AudioCaptureSource(deviceItem.Name);
VideoCapture1.Audio_CaptureDevice.Format = deviceItem.Formats[0].ToString(); // set the first format
#
Audio from speakers (Windows audio loopback)
Enumerate audio loopback devices.
// Enumerate audio loopback devices
var audioSinks = await DeviceEnumerator.Shared.AudioOutputsAsync();
foreach (var sink in audioSinks)
{
// Filter by WASAPI2 API
if (sink.API == AudioOutputDeviceAPI.WASAPI2)
{
// Add to some combobox
cbAudioLoopbackDevice.Items.Add(sink.Name);
}
}
Create source settings.
// audio input
var deviceItem = (await DeviceEnumerator.Shared.AudioOutputsAsync(AudioOutputDeviceAPI.WASAPI2)).FirstOrDefault(device => device.Name == "Output device name");
if (deviceItem == null)
{
return;
}
IVideoCaptureBaseAudioSourceSettings audioSource = new LoopbackAudioCaptureDeviceSourceSettings(deviceItem);
VideoCapture1.Audio_Source = audioSource;
Set the audio capture source to VisioForge What You Hear Source
to use audio loopback and capture sound from speakers.
VideoCapture1.Audio_CaptureDevice = new AudioCaptureSource("VisioForge What You Hear Source");
VideoCapture1.Audio_CaptureDevice.Format_UseBest = true;
Visit our GitHub page to get more code samples.