I am using Blazor to capture a frame from the camera as base64 encoded image
I have a weird issue when I place a breakpoint in JS code I can see image src being captured

however, it never comes out of C# await JSRuntime.InvokeAsync<string> end.

At this point, I feel like I am banging my head on the wall.
Since the string is quite long I introduced a Timeout timespan of one minute, but that didn't help
My code:
Index.Razor
<div>
<img id="captured-image" /> </div>
<div>
<button @onclick="Save">Save</button> </div>
@code{
int index = 0;
protected override void OnInitialized()
{
index = localStorage.Length();
}
public async Task Save()
{
var src = await JSRuntime.InvokeAsync<string>("WebCamFunctions.getCapturedElement", new TimeSpan(0,1,0), new { capturedImageId = "captured-image" });
localStorage.SetItem<string>((index + 1).ToString(), src);
} }
m.js
window.WebCamFunctions = {
getCapturedElement: (options) => { getCapturedElement(options); }
};
function getCapturedElement(options) {
var base64EncodedImage = document.getElementById(options.capturedImageId).currentSrc;
return base64EncodedImage;
}
Why is Blazor await JSRuntime.InvokeAsync<string> capturing image src in C# returns null when it gets the value in JS?
EDIT:
I tried capturing an empty image it is in JS src = '' it still is null var src = await JSRuntime.InvokeAsync<string> so probably it is not length related.