优化歌词偏移代码

This commit is contained in:
LanZhan
2026-04-28 09:56:51 +08:00
parent a0661b3403
commit 5da293154a
2 changed files with 6 additions and 14 deletions

View File

@@ -47,8 +47,7 @@ public sealed partial class LyricManager
/// <summary>
/// 总偏移毫秒数
/// </summary>
private double TotalLyricOffset =>
_isManuallyAdjusted ? _manualLyricOffset : _globalLyricOffset;
public double TotalLyricOffset => _isManuallyAdjusted ? _manualLyricOffset : _globalLyricOffset;
/// <summary>
/// 歌词偏移显示字符串
@@ -125,10 +124,9 @@ public sealed partial class LyricManager
/// <returns></returns>
public int GetCurrentLyricIndex(double currentTime)
{
var offset = TotalLyricOffset;
for (var i = 0; i < CurrentLyricSlices.Count; i++)
{
if (CurrentLyricSlices[i].StartTime + offset > currentTime)
if (CurrentLyricSlices[i].StartTime + TotalLyricOffset > currentTime)
{
return i > 0 ? i - 1 : 0;
}
@@ -171,7 +169,7 @@ public sealed partial class LyricManager
});
}
public Task AddLyricAdjust()
public void AddLyricAdjust()
{
if (!_isManuallyAdjusted)
{
@@ -180,10 +178,9 @@ public sealed partial class LyricManager
}
_manualLyricOffset += 300;
UpdateLyricAdjustDisplay();
return Task.CompletedTask;
}
public Task SubtractLyricAdjust()
public void SubtractLyricAdjust()
{
if (!_isManuallyAdjusted)
{
@@ -192,7 +189,6 @@ public sealed partial class LyricManager
}
_manualLyricOffset -= 300;
UpdateLyricAdjustDisplay();
return Task.CompletedTask;
}
private void UpdateLyricAdjustDisplay()

View File

@@ -140,16 +140,12 @@ public sealed partial class LyricViewModel : ObservableObject, IDisposable
public async void AddLyricAdjustButton_Click(object sender, RoutedEventArgs _2)
{
(sender as Button)!.IsEnabled = false;
await Data.LyricManager.AddLyricAdjust();
(sender as Button)!.IsEnabled = true;
Data.LyricManager.AddLyricAdjust();
}
public async void SubtractLyricAdjustButton_Click(object sender, RoutedEventArgs _2)
{
(sender as Button)!.IsEnabled = false;
await Data.LyricManager.SubtractLyricAdjust();
(sender as Button)!.IsEnabled = true;
Data.LyricManager.SubtractLyricAdjust();
}
public void Dispose()