Nella Universal Windows Platform (e, ancora prima, con Windows 8.1) è stato semplificato notevolmente il discovery e l'accesso ai device installati nel PC o nel telefono. In particolare, per i device video infatti, al contrario di WPF, non è più necessario integrare librerie esterne (come AForge) o includere riferimenti ad applicativi WinForms per recuperare la lista delle webcam e per mostrare una preview.
Per recuperare la lista dei device è sufficiente questa funzione:
private async Task<DeviceInformationCollection> GetVideoDevicesAsync() { return await DeviceInformation.FindAllAsync(DeviceClass.VideoCapture); }
Essendo una lista, è possibile filtrarla per selezionare un dispositivo secondo le sue proprietà, ad esempio IsDefault o IsEnabled. Una volta selezionato il device, è possibile visualizzare una preview sfruttando la classe MediaCapture:
private async Task StartWebcamPreview(DeviceInformation webcamDevice) { var settings = new MediaCaptureInitializationSettings() { StreamingCaptureMode = StreamingCaptureMode.Video, VideoDeviceId = webcamDevice.Id }; var mediaCapture = new MediaCapture(); await mediaCapture.InitializeAsync(settings); await mediaCapture.StartPreviewAsync(); }
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Eseguire query manipolando liste di tipi semplici con Entity Framework Core
Gestire errori funzionali tramite exception in ASP.NET Core Web API
Utilizzare l'operatore GroupBy come ultima istruzione di una query LINQ in Entity Framework
Sostituire la GitHub Action di login su private registry
Installare le Web App site extension tramite una pipeline di Azure DevOps
Configurare dependabot per aggiornare le dipendenze di terze parti con GitHub Actions
Eseguire query per recuperare il padre di un record che sfrutta il tipo HierarchyID in Entity Framework
Eseguire attività pianificate con Azure Container Jobs
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Disabilitare automaticamente un workflow di GitHub
Verificare la provenienza di un commit tramite le GitHub Actions
Usare le collection expression per inizializzare una lista di oggetti in C#