# BasePlayer Class

    open class BasePlayer : BaseInterceptable

BasePlayer implements all properties that are updated from the State and must be synchronised on ‘playerQueue’

### State Timeouts

- `applyStateTimeoutConfiguration(_:)`

  Apply per-state timeout values from a `StateTimeoutConfiguration`. Call this whenever the player configuration is set or updated.

  #### Declaration

  Swift

      public func applyStateTimeoutConfiguration(_ config: StateTimeoutConfiguration?)

- `cancelStateTimeoutTimer()`

  Cancel any pending state timeout timer.

  #### Declaration

  Swift

      public func cancelStateTimeoutTimer()

- `scheduleStateTimeout(for:)`

  Schedule a timeout for `state`. If the player is still in `state` when the timer fires, `onStateTimeout(_:)` is called. Cancels any previously scheduled timeout.

  #### Declaration

  Swift

      public func scheduleStateTimeout(for state: PlaybackState)

- `onStateTimeout(_:)`

  Called when the player has remained in `state` longer than the configured timeout. Override in subclasses to dispatch the appropriate error.

  #### Declaration

  Swift

      open func onStateTimeout(_ state: PlaybackState)