revert Core Freeze:核心链路功能已经完成设计,后续进入beta功能开发模式,接下来会在UI部分微调后,进入首个Release版本(1.1.0-Release)
This commit is contained in:
2026-09-02 10:15:54 +08:00
parent b86a5d2b46
commit 974dee2995
+5 -21
View File
@@ -779,6 +779,7 @@ class AudioService extends ChangeNotifier {
debugPrint('💾 [AudioService] playback state saved');
}
/// 恢复播放状态
/// 恢复播放状态
Future<bool> restorePlaybackState() async {
final state = await _db.getPlaybackState();
@@ -802,9 +803,7 @@ class AudioService extends ChangeNotifier {
_queue = queue;
_currentIndex = state['current_index'] as int;
if (_currentIndex < 0 || _currentIndex >= _queue.length) {
_currentIndex = 0;
}
if (_currentIndex >= _queue.length) _currentIndex = 0;
final modeStr = state['play_mode'] as String? ?? 'sequential';
_playMode = modeStr == 'sequential'
@@ -814,20 +813,6 @@ class AudioService extends ChangeNotifier {
: PlayMode.shuffle;
_currentPlaylistId = state['current_playlist_id'] as String?;
// ⭐⭐⭐ 关键修复:重建 _shuffledIndices 和 _shuffledIndex ⭐⭐⭐
if (_playMode == PlayMode.shuffle) {
_shuffledIndices = List.generate(_queue.length, (i) => i);
_shuffledIndices.shuffle();
_shuffledIndex = _shuffledIndices.indexOf(_currentIndex);
if (_shuffledIndex == -1) {
_shuffledIndex = 0;
_currentIndex = _shuffledIndices[0];
}
} else {
_shuffledIndices = List.generate(_queue.length, (i) => i);
_shuffledIndex = _currentIndex;
}
// 保存待恢复的进度
final savedPos = state['position_ms'] as int? ?? 0;
_pendingSeekPosition = Duration(milliseconds: savedPos);
@@ -836,11 +821,10 @@ class AudioService extends ChangeNotifier {
_currentSong = song;
_onSongChanged?.call(song);
debugPrint('♻️ [AudioService] playback state restored: '
'queue=${_queue.length}, index=$_currentIndex, '
'song=${song.title}, mode=$_playMode');
debugPrint(
'♻️ [AudioService] playback state restored: ${song.title} - ${song.artist}');
// ⭐ 加载音频但不自动播放
// ⭐ 关键:加载音频但不自动播放
await _loadRestoredPlayback();
return true;