Catch COMMAND_FAILED/NOT_INITIALIZED in PlayerNative.seek() and PlayerAndroid.seek() directly, preventing unhandled PlatformException crashes on macOS app resume. Remove the ~200-line _PendingSeekCoordinator system and revert all callsites to direct player.seek(clampSeekPosition(...)). Keep seekable property/stream and media controls gating. Add ExoPlayer seekable emission.
9 lines
274 B
Dart
9 lines
274 B
Dart
import '../mpv/mpv.dart';
|
|
|
|
Duration clampSeekPosition(Player player, Duration position) {
|
|
final duration = player.state.duration;
|
|
if (position.isNegative) return Duration.zero;
|
|
if (duration > Duration.zero && position > duration) return duration;
|
|
return position;
|
|
}
|