Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        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);
            }
        }