8de7342352
DOM bar chart with clip-overlay progress split; pointer-capture drag; WaveformProfile fetched on load (fire-and-forget, cancellable); flat fallback when no profile; small lazily-loaded waveformSeeker.js for getBoundingClientRect and setPointerCapture.
20 lines
895 B
C#
20 lines
895 B
C#
using Microsoft.AspNetCore.Components;
|
|
|
|
namespace DeepDrftPublic.Client.Controls.AudioPlayerBar;
|
|
|
|
/// <summary>
|
|
/// Centre zone of the player: the <see cref="WaveformSeeker"/> over a timestamp label.
|
|
/// The seeker owns the pointer-gesture seek logic and reads playback state off the cascaded
|
|
/// player service directly; this zone just forwards the seek callbacks up to
|
|
/// <see cref="AudioPlayerBar"/> (whose wiring is unchanged) and renders the timestamp.
|
|
/// </summary>
|
|
public partial class PlayerSeekZone : ComponentBase
|
|
{
|
|
[Parameter] public double DisplayTime { get; set; }
|
|
[Parameter] public double? Duration { get; set; }
|
|
[Parameter] public EventCallback OnSeekStart { get; set; }
|
|
[Parameter] public EventCallback<double> OnSeekEnd { get; set; }
|
|
[Parameter] public EventCallback<double> OnSeekChange { get; set; }
|
|
[Parameter] public string? Class { get; set; }
|
|
}
|