@ -31,7 +31,7 @@
@@ -31,7 +31,7 @@
<div class="d-flex">
<MudText>Media Item ID</MudText>
</div>
<MudTextField T="int?" Value="_m ediaItemId" ValueChanged="@(async x => await OnMediaItemIdChanged(x))" />
<MudTextField T="int?" Value="M ediaItemId" ValueChanged="@(async x => await OnMediaItemIdChanged(x))" />
</MudStack>
<MudStack Row="true" Breakpoint="Breakpoint.SmAndDown" Class="form-field-stack gap-md-8 mb-5">
<div class="d-flex">
@ -77,7 +77,7 @@
@@ -77,7 +77,7 @@
<MudButton Variant="Variant.Filled"
Color="Color.Primary"
StartIcon="@Icons.Material.Filled.PlayCircle"
Disabled="@(Locker.IsTroubleshootingPlaybackLocked() || _m ediaItemId is null)"
Disabled="@(Locker.IsTroubleshootingPlaybackLocked() || M ediaItemId is null)"
OnClick="@PreviewChannel">
Play
</MudButton>
@ -107,13 +107,15 @@
@@ -107,13 +107,15 @@
private List<FFmpegProfileViewModel> _ffmpegProfiles = [];
private List<WatermarkViewModel> _watermarks = [];
private int? _mediaItemId;
private MediaItemInfo _info;
private int _ffmpegProfileId;
private int? _watermarkId;
private bool _startFromBeginning;
private bool _hasPlayed;
[SupplyParameterFromQuery(Name = "mediaItem")]
public int? MediaItemId { get; set; }
public void Dispose()
{
_cts.Cancel();
@ -135,6 +137,11 @@
@@ -135,6 +137,11 @@
}
_watermarks = await Mediator.Send(new GetAllWatermarks(), _cts.Token);
if (MediaItemId is not null)
{
await OnMediaItemIdChanged(MediaItemId);
}
}
private void LockChanged(object sender, EventArgs e) => InvokeAsync(StateHasChanged);
@ -143,7 +150,7 @@
@@ -143,7 +150,7 @@
{
var uri = new UriBuilder(NavigationManager.ToAbsoluteUri(NavigationManager.Uri));
uri.Path = uri.Path.Replace("/system/troubleshooting/playback", "/api/troubleshoot/playback.m3u8");
uri.Query = $"?mediaItem={_m ediaItemId}&ffmpegProfile={_ffmpegProfileId}&watermark={_watermarkId ?? 0}&startFromBeginning={_startFromBeginning}";
uri.Query = $"?mediaItem={M ediaItemId}&ffmpegProfile={_ffmpegProfileId}&watermark={_watermarkId ?? 0}&startFromBeginning={_startFromBeginning}";
await JsRuntime.InvokeVoidAsync("previewChannel", uri.ToString());
await Task.Delay(TimeSpan.FromSeconds(1));
@ -153,7 +160,7 @@
@@ -153,7 +160,7 @@
private async Task OnMediaItemIdChanged(int? mediaItemId)
{
_m ediaItemId = mediaItemId;
M ediaItemId = mediaItemId;
_hasPlayed = false;
foreach (int id in Optional(mediaItemId))
@ -167,7 +174,7 @@
@@ -167,7 +174,7 @@
if (maybeInfo.IsLeft)
{
_m ediaItemId = null;
M ediaItemId = null;
}
}
@ -176,7 +183,7 @@
@@ -176,7 +183,7 @@
private async Task DownloadResults()
{
await JsRuntime.InvokeVoidAsync("window.open", $"api/troubleshoot/playback/archive?mediaItem={_m ediaItemId ?? 0}&ffmpegProfile={_ffmpegProfileId}&watermark={_watermarkId ?? 0}&startFromBeginning={_startFromBeginning}");
await JsRuntime.InvokeVoidAsync("window.open", $"api/troubleshoot/playback/archive?mediaItem={M ediaItemId ?? 0}&ffmpegProfile={_ffmpegProfileId}&watermark={_watermarkId ?? 0}&startFromBeginning={_startFromBeginning}");
}
private void HandleTroubleshootingCompleted(PlaybackTroubleshootingCompletedNotification result)