fix(playback): 冷启动不再预加载音频,首次播放按保存进度打开
按今日日志定位:所谓"后台假死"其实是进程被系统回收 (13:14:46 ActivityManager: has died: prcp FGS,当时内存压力下批量杀进程)。 冷启动后旧代码会先联网 play→seek→pause,既慢又会和用户点播放打架。 - restorePlaybackState: 只恢复队列/进度/UI,不联网,不再调用 _loadRestoredPlayback - 新增 playOrResume(): UI 按钮、通知栏、耳机键统一入口; 冷启动首次播放走 _playCurrent(open + seek 到保存位置 + play) - AudioPlayerHandler.play() 改走 playOrResume() - 播放中每 10s 持久化一次进度,冷启动恢复更准确 - 窗口期收紧:网络轮询 10s→3s、切换去抖 3s→2s、 起播看门狗 15s→10s、中段卡死 30s→20s 真机验证(release): 冷启动 8s 内 play 调用 0 次(不再预加载) 按键播放:冷启动首次播放 → open 21ms → restored position 15.751s → 1.5s 出声
This commit is contained in:
@@ -25,7 +25,7 @@ class NetworkWatcher {
|
||||
/// 网络签名变化时回调(已在内部做过去抖)
|
||||
void Function()? onChanged;
|
||||
|
||||
void start({Duration interval = const Duration(seconds: 10)}) {
|
||||
void start({Duration interval = const Duration(seconds: 3)}) {
|
||||
if (_timer != null) return;
|
||||
_timer = Timer.periodic(interval, (_) => _tick());
|
||||
_tick();
|
||||
|
||||
Reference in New Issue
Block a user