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
Generare HTML a runtime a partire da un componente Razor in ASP.NET Core
Effettuare il binding di date in Blazor
Proteggere le risorse Azure con private link e private endpoints
Creare gruppi di client per Event Grid MQTT
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Creare una libreria CSS universale: Cards
Eseguire un metodo asincrono dopo il set di una proprietà in Blazor 8
Miglioramenti agli screen reader e al contrasto in Angular
Utilizzare il nuovo modello GPT-4o con Azure OpenAI
Ordinare randomicamente una lista in C#
Utilizzare QuickGrid di Blazor con Entity Framework
Usare una container image come runner di GitHub Actions