In uno script precedente abbiamo visto come usare la classe MediaCapture per catturare il flusso video dello schermo e salvare il tutto su di un file. In questo script vedremo come utilizzare la stessa classe per visualizzare lo stream video della web cam.
Per prima cosa inseriamo nella nostra pagina il controllo CaptureElement:
<StackPanel Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" Orientation="Vertical"> <CaptureElement Name="PreviewControl" Stretch="Uniform" /> <Button HorizontalAlignment="Center" Click="ButtonBase_OnClick">Inizia</Button> </StackPanel>
Successivamente Andiamo ad aggiungere nell'event handler del Button il seguente codice:
try { var _mediaCapture = new MediaCapture(); await _mediaCapture.InitializeAsync(); PreviewControl.Source = _mediaCapture; await _mediaCapture.StartPreviewAsync(); DisplayInformation.AutoRotationPreferences = DisplayOrientations.Landscape; } catch (UnauthorizedAccessException) { System.Diagnostics.Debug.WriteLine("non hai i permessi di accedere alla webcam"); } catch (Exception ex) { System.Diagnostics.Debug.WriteLine("Inizializzazione di MediaCapture . {0}", ex.Message); }
Il codice è relativamente semplice, una volta creata un'istanza della classe MediaCapture possiamo collegarla direttamente al controllo PreviewCotrol semplicemente assegnandola alla proprietà Sorce.

Perche la nostra applicazione possa accedere alla webcam e al microfono dobbiamo impostare le rispettive Capabilities nel manifest.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare Containers in .NET Aspire
Change tracking e composition in Entity Framework
Eseguire script pre e post esecuzione di un workflow di GitHub
Configurare e gestire sidecar container in Azure App Service
Gestire codice JavaScript con code splitting e lazy loading
Aggiornare a .NET 9 su Azure App Service
Managed deployment strategy in Azure DevOps
Gestire i dati con Azure Cosmos DB Data Explorer
Simulare Azure Cosmos DB in locale con Docker
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
Ricevere notifiche sui test con Azure Load Testing
Disabilitare le run concorrenti di una pipeline di Azure DevOps