protected override async Task OnInitializedAsync() { action = HandleAction; hubConnection = new HubConnectionBuilder() .WithUrl(NavigationManager.ToAbsoluteUri("/shareScreen")) .AddJsonProtocol(o => o.PayloadSerializerOptions.DefaultBufferSize = 2024000) .Build(); hubConnection.On <string>("Joined", (user) => { messages.Add(user); StateHasChanged(); }); hubConnection.On <byte[]>("DrawFrame", async element => { var imgData = Convert.ToBase64String(element); Console.WriteLine($"received data from DrawFrame: {imgData.Substring(0,10)}..."); await ScreenCaptureInterop.ShowResult(imgData); imgUrl = imgData; StateHasChanged(); }); hubConnection.On <ScreenDataItem>("HandleStreamData", async data => { Console.WriteLine($"Stream handled: {data.ToString().Substring(0, 10)}"); imgUrl = $"data:image/png;base64,{data}"; _ = ScreenCaptureInterop.ShowResult(imgUrl); await InvokeAsync(StateHasChanged); }); await hubConnection.StartAsync(); await hubConnection.SendAsync("Joined", "Adam"); await base.OnInitializedAsync(); }
private async Task StartCapture() { await ScreenCaptureInterop.StartCapture(); await InvokeAsync(StateHasChanged); }