@code { private bool _isInit = false; private List _chunks = new(); private List _logs = new(); private string _playUrl; } @if (_isInit == false) { } else { for (var index = 0; index < _chunks.Count; index++) { var chunk = _chunks[index]; } }
@foreach (var s in _logs) {
@s
} @code { protected override async Task OnAfterRenderAsync(bool firstRender) { await base.OnAfterRenderAsync(firstRender); if (firstRender) { SvcModule.OnInit += VoiceInit; SvcModule.ChunkArrive += ChunkArrive; } } async Task Init() { try { _isInit = await SvcModule.Init(); } catch (Exception e) { _logs.Add(e.ToString()); } StateHasChanged(); } private void VoiceInit() { } async Task Start() { try { await SvcModule.Start(); } catch (Exception e) { _logs.Add(e.ToString()); } StateHasChanged(); } private void ChunkArrive(byte[] obj) { _chunks.Add(obj); StateHasChanged(); } async Task Stop() { await SvcModule.Stop(); } private async Task Play(byte[] chunk) { _playUrl = await SvcModule.CreateBlob(chunk); StateHasChanged(); } }