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
Creare una libreria CSS universale: Nav menu
Generare la software bill of material (SBOM) in GitHub
.NET Conference Italia 2024
Eseguire i worklow di GitHub su runner potenziati
Configurare il nome della run di un workflow di GitHub in base al contesto di esecuzione
Utilizzare EF.Constant per evitare la parametrizzazione di query SQL
Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
Scrivere selettori CSS più semplici ed efficienti con :is()
Rinnovare il token di una GitHub App durante l'esecuzione di un workflow
Gestire eccezioni nei plugin di Semantic Kernel in ASP.NET Core Web API
Triggerare una pipeline su un altro repository di Azure DevOps
Eseguire query in contemporanea con EF