startOrRecoverTrack method

  1. @override
Future<TrackStartResult> startOrRecoverTrack(
  1. TrackStartRequest request
)
override

Implementation

@override
Future<TrackStartResult> startOrRecoverTrack(
    TrackStartRequest request) async {
  _requireOwner(request.owner);
  final current = _currentTrack;
  if (current == null || current.isTerminal) return startNewTrack(request);
  if (current.status == TrackStatus.active) {
    return TrackStartResult(
      track: current,
      disposition: TrackStartDisposition.reusedActive,
      readiness: _readiness,
    );
  }
  return _resume(current);
}