Communication
Communication copied to clipboard
The ACS .NET SDK shows less video devices than the ACS JS SDK
Is your feature request related to a problem? Please describe. The ACS .NET SDK returns only a subset of local video devices. I have two physical video devices in my laptop: Microsoft Front Camera Microsoft Back Camera
I also have several virtual camera devices, two of them: OBS Virtual Camera (provided by OBS Studio) PowerToys VideoConference Mute (provided by PowerToys)
I retrieve the cameras collection using the ACS .NET SDK:
var callClient = new CallClient();
var deviceManager = await callClient.GetDeviceManager();
var cameras = deviceManager.Cameras;
The cameras object only returns the 2 actual webcams (Microsoft Front/Back Camera).
The MS Teams (windows desktop) Client running on the same machine does show al the different cameras:
Running the Group Calling Sample project that uses the ACS JS SDK also returns all the camera's:

Note that we tested this on different machines and all return the same results; the ACS .NET SDK only returns a subset of video devices. Both MS Teams and applications built on the ACS JS SDK show all devices.
Describe the solution you'd like The ACS SDK returns all available video devices, like the MS Teams client and the ACS JS SDK do.
Describe alternatives you've considered Using the ACS JS SDK. This however reduces the video quality to 720p. Adding a network camera in Windows 10/11. This has the drawback that there is no way to influence camera settings or views. Suprisingly, adding a network camera this way does enable the device to show up using the ACS .NET SDK. Since we have one device that has four camera's and a 'quad view', using the network camera in Win10 this way would limit us to a single camera.
I have the same Problem with OBS Studio. The following code only returns a subset (physical devices):
this.callClient = new CallClient(new CallClientOptions()
{
Diagnostics = new CallDiagnosticsOptions()
{
AppName = "CallingQuickstart",
AppVersion = "1.0",
Tags = new[] { "Calling", "ACS", "Windows" }
}
});
//// Set up local video stream using the first camera enumerated
DeviceManager deviceManager = await this.callClient.GetDeviceManagerAsync();
foreach (var device in deviceManager.Cameras)
{
//do something with device
}
Edition Windows 10 Enterprise Version 21H2 Installiert am 10.06.2021 Betriebssystembuild 19044.3324 Leistung Windows Feature Experience Pack 1000.19041.1000.0
Hi @Devmawi , what version of the ACS Windows SDK are you using?