Проведен аудит. Добавлено переключение треков
This commit is contained in:
@@ -17,7 +17,13 @@
|
||||
<MudItem>
|
||||
<MudStack Spacing="0">
|
||||
<MudText Typo="Typo.body1" Color="Color.Secondary">@Track.Title</MudText>
|
||||
<MudText Typo="Typo.body2" >@string.Join(", ", Track.Artists.Select(a => a.Name))</MudText>
|
||||
<MudStack Row AlignItems="AlignItems.Center" Spacing="1">
|
||||
<MudText Typo="Typo.body2">@string.Join(", ", Track.Artists.Select(a => a.Name))</MudText>
|
||||
@if (!string.IsNullOrEmpty(AddedByName))
|
||||
{
|
||||
<MudChip T="string" Size="Size.Small" Variant="Variant.Outlined" Color="Color.Secondary" Class="pa-0 px-1" Style="height: 18px; font-size: 10px;">@AddedByName</MudChip>
|
||||
}
|
||||
</MudStack>
|
||||
</MudStack>
|
||||
</MudItem>
|
||||
|
||||
@@ -33,4 +39,5 @@
|
||||
[Parameter] public YandexTrack Track { get; set; } = null!;
|
||||
[Parameter] public string PlaylistShareToken { get; set; } = string.Empty;
|
||||
[Parameter] public bool CanPlay { get; set; } = true;
|
||||
[Parameter] public string? AddedByName { get; set; }
|
||||
}
|
||||
@@ -11,6 +11,12 @@
|
||||
|
||||
<MudStack Spacing="1" Row AlignItems="AlignItems.Center" Wrap="Wrap.NoWrap">
|
||||
<!-- Кнопки управления -->
|
||||
<MudIconButton Icon="@Icons.Material.Filled.SkipPrevious"
|
||||
Size="Size.Small"
|
||||
Color="Color.Default"
|
||||
Disabled="@(!AudioPlayerService.HasPrevious)"
|
||||
OnClick="() => AudioPlayerService.PlayPreviousAsync()" />
|
||||
|
||||
<MudItem @onmouseenter="() => { _isPlayHovered = true; }"
|
||||
@onmouseleave="() => { _isPlayHovered = false; }"
|
||||
Class="relative d-inline-block rounded overflow-hidden cursor-pointer"
|
||||
@@ -32,7 +38,13 @@
|
||||
ToggledChanged="OnPlayClick" />
|
||||
</MudItem>
|
||||
</MudItem>
|
||||
|
||||
|
||||
<MudIconButton Icon="@Icons.Material.Filled.SkipNext"
|
||||
Size="Size.Small"
|
||||
Color="Color.Default"
|
||||
Disabled="@(!AudioPlayerService.HasNext)"
|
||||
OnClick="() => AudioPlayerService.PlayNextAsync()" />
|
||||
|
||||
<!-- Название и прогресс -->
|
||||
@if (AudioPlayerService.CurrentTrack != null)
|
||||
{
|
||||
@@ -170,15 +182,9 @@
|
||||
#endregion
|
||||
|
||||
#region Обработка сервиса
|
||||
private async Task OnServiceLoadAndPlay(string trackId, string? accessToken, string? sharedPlaylistId)
|
||||
private async Task OnServiceLoadAndPlay(string trackId, string? playToken, string? sharedPlaylistId)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(accessToken))
|
||||
{
|
||||
var tokens = await TokenStorage.GetTokensAsync();
|
||||
accessToken = tokens.token;
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(accessToken) && string.IsNullOrWhiteSpace(sharedPlaylistId))
|
||||
if (string.IsNullOrWhiteSpace(playToken) && string.IsNullOrWhiteSpace(sharedPlaylistId))
|
||||
{
|
||||
Snackbar.Add("Токен авторизации не найден. Пожалуйста, войдите заново.", Severity.Error);
|
||||
return;
|
||||
@@ -186,7 +192,7 @@
|
||||
|
||||
var streamUrl = new Uri(Http.BaseAddress!, $"/api/audio/track/{trackId}").ToString();
|
||||
await EnsureAudioModuleAsync();
|
||||
await _audioElement!.InvokeVoidAsync("loadAndPlay", streamUrl, accessToken, sharedPlaylistId);
|
||||
await _audioElement!.InvokeVoidAsync("loadAndPlay", streamUrl, playToken, sharedPlaylistId);
|
||||
}
|
||||
|
||||
private async Task OnServicePlay()
|
||||
|
||||
Reference in New Issue
Block a user