public async Task <IList <VideoDevice> > GetVideoDevices() { var devices = await VideoCapturer.GetDevices(); return(devices .Select(dev => new VideoDevice() { Id = dev.Info.Id, Name = dev.Info.Name }) .ToList()); }
public Task <IList <IMediaDevice> > GetMediaDevicesAsync(MediaKind kind) { if (kind == MediaKind.AudioInputDevice) { return(Task.Run(async() => { IList <IMediaDevice> audioMediaDevicesCapturersList = new List <IMediaDevice>(); DeviceInformationCollection audioCapturers = await DeviceInformation.FindAllAsync(Windows.Media.Devices.MediaDevice.GetAudioCaptureSelector()); foreach (var microphone in audioCapturers) { var mediaDevice = new MediaDevice(); mediaDevice.GetMediaKind(MediaKind.AudioInputDevice.ToString()); mediaDevice.GetId(microphone.Id); mediaDevice.GetDisplayName(microphone.Name); audioMediaDevicesCapturersList.Add(mediaDevice); } return audioMediaDevicesCapturersList; })); } if (kind == MediaKind.AudioOutputDevice) { return(Task.Run(async() => { IList <IMediaDevice> audioMediaDevicesRendersList = new List <IMediaDevice>(); DeviceInformationCollection audioRenders = await DeviceInformation.FindAllAsync(Windows.Media.Devices.MediaDevice.GetAudioRenderSelector()); foreach (var speaker in audioRenders) { var mediaDevice = new MediaDevice(); mediaDevice.GetMediaKind(MediaKind.AudioOutputDevice.ToString()); mediaDevice.GetId(speaker.Id); mediaDevice.GetDisplayName(speaker.Name); audioMediaDevicesRendersList.Add(mediaDevice); } return audioMediaDevicesRendersList; })); } if (kind == MediaKind.VideoDevice) { return(Task.Run(async() => { IList <IMediaDevice> videoMediaDevicesList = new List <IMediaDevice>(); IReadOnlyList <IVideoDeviceInfo> videoDevices = await VideoCapturer.GetDevices(); foreach (IVideoDeviceInfo videoDevice in videoDevices) { var mediaDevice = new MediaDevice(); mediaDevice.GetMediaKind(MediaKind.VideoDevice.ToString()); mediaDevice.GetId(videoDevice.Info.Id); mediaDevice.GetDisplayName(videoDevice.Info.Name); IList <MediaVideoFormat> videoFormatsList = await GetMediaVideoFormatList(videoDevice.Info.Id); mediaDevice.GetVideoFormats(videoFormatsList); videoMediaDevicesList.Add(mediaDevice); } return videoMediaDevicesList; })); } else { return(null); } }