Skip to content

Commit c91c3a8

Browse files
committed
chore: fix app
1 parent 0daeff5 commit c91c3a8

1 file changed

Lines changed: 8 additions & 21 deletions

File tree

TFMAudioApp/Services/AudioPlayerService.cs

Lines changed: 8 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -592,34 +592,21 @@ public async Task PreviousAsync()
592592

593593
public async Task SeekAsync(TimeSpan position)
594594
{
595-
if (_mediaPlayer == null || _mediaPlayer.Length <= 0)
596-
{
597-
System.Diagnostics.Debug.WriteLine($"[AudioPlayer] SeekAsync: Cannot seek - player null or length 0");
598-
return;
599-
}
595+
if (_mediaPlayer == null) return;
600596

601-
_lastSeekTime = DateTime.UtcNow;
602597
var length = _mediaPlayer.Length;
603-
var isSeekable = _mediaPlayer.IsSeekable;
604-
var posBefore = _mediaPlayer.Position;
605-
var timeBefore = _mediaPlayer.Time;
598+
if (length <= 0) return;
606599

607-
System.Diagnostics.Debug.WriteLine($"[AudioPlayer] === SEEK START === target={position.TotalSeconds:F1}s, isSeekable={isSeekable}");
600+
_lastSeekTime = DateTime.UtcNow;
601+
602+
// Use Position (0.0 to 1.0 ratio) which is more reliable than Time
603+
var positionRatio = (float)(position.TotalMilliseconds / length);
604+
positionRatio = Math.Clamp(positionRatio, 0f, 0.99f);
608605

609606
await MainThread.InvokeOnMainThreadAsync(() =>
610607
{
611-
// Try using Time property (milliseconds) - sometimes works better than Position
612-
_mediaPlayer.Time = (long)position.TotalMilliseconds;
608+
_mediaPlayer.Position = positionRatio;
613609
});
614-
615-
// Check if seek worked
616-
await Task.Delay(200);
617-
if (_mediaPlayer != null)
618-
{
619-
var posAfter = _mediaPlayer.Position;
620-
var timeAfter = _mediaPlayer.Time;
621-
System.Diagnostics.Debug.WriteLine($"[AudioPlayer] === SEEK END === before={timeBefore}ms, after={timeAfter}ms, isSeekable={isSeekable}");
622-
}
623610
}
624611

625612
public async Task PlayAtIndexAsync(int index)

0 commit comments

Comments
 (0)