add troubleshoot playback to media card overflow menu (#2210)
This commit is contained in:
@@ -31,7 +31,7 @@
|
||||
<div class="d-flex">
|
||||
<MudText>Media Item ID</MudText>
|
||||
</div>
|
||||
<MudTextField T="int?" Value="_mediaItemId" ValueChanged="@(async x => await OnMediaItemIdChanged(x))" />
|
||||
<MudTextField T="int?" Value="MediaItemId" 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 @@
|
||||
<MudButton Variant="Variant.Filled"
|
||||
Color="Color.Primary"
|
||||
StartIcon="@Icons.Material.Filled.PlayCircle"
|
||||
Disabled="@(Locker.IsTroubleshootingPlaybackLocked() || _mediaItemId is null)"
|
||||
Disabled="@(Locker.IsTroubleshootingPlaybackLocked() || MediaItemId is null)"
|
||||
OnClick="@PreviewChannel">
|
||||
Play
|
||||
</MudButton>
|
||||
@@ -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 @@
|
||||
}
|
||||
|
||||
_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 @@
|
||||
{
|
||||
var uri = new UriBuilder(NavigationManager.ToAbsoluteUri(NavigationManager.Uri));
|
||||
uri.Path = uri.Path.Replace("/system/troubleshooting/playback", "/api/troubleshoot/playback.m3u8");
|
||||
uri.Query = $"?mediaItem={_mediaItemId}&ffmpegProfile={_ffmpegProfileId}&watermark={_watermarkId ?? 0}&startFromBeginning={_startFromBeginning}";
|
||||
uri.Query = $"?mediaItem={MediaItemId}&ffmpegProfile={_ffmpegProfileId}&watermark={_watermarkId ?? 0}&startFromBeginning={_startFromBeginning}";
|
||||
await JsRuntime.InvokeVoidAsync("previewChannel", uri.ToString());
|
||||
|
||||
await Task.Delay(TimeSpan.FromSeconds(1));
|
||||
@@ -153,7 +160,7 @@
|
||||
|
||||
private async Task OnMediaItemIdChanged(int? mediaItemId)
|
||||
{
|
||||
_mediaItemId = mediaItemId;
|
||||
MediaItemId = mediaItemId;
|
||||
_hasPlayed = false;
|
||||
|
||||
foreach (int id in Optional(mediaItemId))
|
||||
@@ -167,7 +174,7 @@
|
||||
|
||||
if (maybeInfo.IsLeft)
|
||||
{
|
||||
_mediaItemId = null;
|
||||
MediaItemId = null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -176,7 +183,7 @@
|
||||
|
||||
private async Task DownloadResults()
|
||||
{
|
||||
await JsRuntime.InvokeVoidAsync("window.open", $"api/troubleshoot/playback/archive?mediaItem={_mediaItemId ?? 0}&ffmpegProfile={_ffmpegProfileId}&watermark={_watermarkId ?? 0}&startFromBeginning={_startFromBeginning}");
|
||||
await JsRuntime.InvokeVoidAsync("window.open", $"api/troubleshoot/playback/archive?mediaItem={MediaItemId ?? 0}&ffmpegProfile={_ffmpegProfileId}&watermark={_watermarkId ?? 0}&startFromBeginning={_startFromBeginning}");
|
||||
}
|
||||
|
||||
private void HandleTroubleshootingCompleted(PlaybackTroubleshootingCompletedNotification result)
|
||||
|
||||
@@ -72,6 +72,10 @@
|
||||
<MudMenuItem Icon="@Icons.Material.Filled.Info"
|
||||
Label="Show Media Info"
|
||||
OnClick="@ShowMediaInfo"/>
|
||||
|
||||
<MudMenuItem Icon="@Icons.Material.Filled.Troubleshoot"
|
||||
Label="Troubleshoot Playback"
|
||||
OnClick="@TroubleshootPlayback"/>
|
||||
}
|
||||
</MudMenu>
|
||||
}
|
||||
@@ -223,4 +227,9 @@
|
||||
}
|
||||
}
|
||||
|
||||
private void TroubleshootPlayback()
|
||||
{
|
||||
NavigationManager.NavigateTo($"system/troubleshooting/playback?mediaItem={Data.MediaItemId}");
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user