feat(playback): 拥塞网络退避重试 + mpv 缓冲加大
针对公司共享出口(整栋楼抢网): - 恢复退避:连续失败 3 次后 30s、4 次 60s、5 次 120s, 冷却结束自动再试一次;累计 6 次后停止,等用户手动点 - 用户手动点播放会清零退避计数 - 成功出声(position>1s)后清零 - mpv 缓冲加大:cache-secs=60s、demuxer-max-bytes=64MiB、 demuxer-readahead-secs=30 真机验证:缓冲参数设置成功,起播 1576ms(此前 2098ms)。
This commit is contained in:
@@ -41,6 +41,20 @@ class PlaybackService {
|
||||
return;
|
||||
}
|
||||
_player = Player();
|
||||
|
||||
// 拥塞网络(公司共享出口)下加大缓冲:多存一点余量,
|
||||
// 减少"播到一半断流 -> 重连"的次数。代价是起播稍慢。
|
||||
// 通过 platform 动态调用,避免依赖 media_kit 的内部类型。
|
||||
try {
|
||||
final platform = _player!.platform as dynamic;
|
||||
platform.setProperty('cache-secs', '60');
|
||||
platform.setProperty('demuxer-max-bytes', '64MiB');
|
||||
platform.setProperty('demuxer-readahead-secs', '30');
|
||||
debugPrint('✅ [PlaybackService] mpv 缓冲参数已设置(cache 60s / 64MiB)');
|
||||
} catch (e) {
|
||||
debugPrint('⚠️ [PlaybackService] 设置 mpv 缓冲参数失败: $e');
|
||||
}
|
||||
|
||||
_initialized = true;
|
||||
debugPrint(
|
||||
'✅ [PlaybackService] Player 已创建, serviceId=$_serviceId, player=${_player.hashCode}');
|
||||
|
||||
Reference in New Issue
Block a user