# StateTimeoutConfiguration Class

    public class StateTimeoutConfiguration : NSObject, NSCopying, Codable

Configuration for per-state timeouts of the player state machine. Values are in seconds. Use 0 to disable a timeout for a state.

### Public

- `idleSeconds`

  Timeout when in `idle` state. 0 disables timeout.

  #### Declaration

  Swift

      public var idleSeconds: Double

- `openingSeconds`

  Timeout when in `opening` state. 0 disables timeout.

  #### Declaration

  Swift

      public var openingSeconds: Double

- `readySeconds`

  Timeout when in `ready` state. 0 disables timeout.

  #### Declaration

  Swift

      public var readySeconds: Double

- `bufferingSeconds`

  Timeout when in `buffering` state. 0 disables timeout.

  #### Declaration

  Swift

      public var bufferingSeconds: Double

- `playSeconds`

  Timeout when in `play` state. 0 disables timeout.

  #### Declaration

  Swift

      public var playSeconds: Double

- `pausingSeconds`

  Timeout when in `pausing` state. 0 disables timeout.

  #### Declaration

  Swift

      public var pausingSeconds: Double

- `stoppingSeconds`

  Timeout when in `stopping` state. 0 disables timeout.

  #### Declaration

  Swift

      public var stoppingSeconds: Double

- `seekingSeconds`

  Timeout when in `seeking` state. 0 disables timeout.

  #### Declaration

  Swift

      public var seekingSeconds: Double

- `endedSeconds`

  Timeout when in `ended` state. 0 disables timeout.

  #### Declaration

  Swift

      public var endedSeconds: Double

- `errorSeconds`

  Timeout when in `error` state. 0 disables timeout.

  #### Declaration

  Swift

      public var errorSeconds: Double

- `init(idleSeconds:openingSeconds:readySeconds:bufferingSeconds:playSeconds:pausingSeconds:stoppingSeconds:seekingSeconds:endedSeconds:errorSeconds:)`

  Creates a timeout configuration with explicit per-state values.

  #### Declaration

  Swift

      public init(
          idleSeconds: Double = Defaults.idle,
          openingSeconds: Double = Defaults.opening,
          readySeconds: Double = Defaults.ready,
          bufferingSeconds: Double = Defaults.buffering,
          playSeconds: Double = Defaults.play,
          pausingSeconds: Double = Defaults.pausing,
          stoppingSeconds: Double = Defaults.stopping,
          seekingSeconds: Double = Defaults.seeking,
          endedSeconds: Double = Defaults.ended,
          errorSeconds: Double = Defaults.error
      )

  #### Parameters

  `idleSeconds` | Timeout for `idle`.
  `openingSeconds` | Timeout for `opening`.
  `readySeconds` | Timeout for `ready`.
  `bufferingSeconds` | Timeout for `buffering`.
  `playSeconds` | Timeout for `play`.
  `pausingSeconds` | Timeout for `pausing`.
  `stoppingSeconds` | Timeout for `stopping`.
  `seekingSeconds` | Timeout for `seeking`.
  `endedSeconds` | Timeout for `ended`.
  `errorSeconds` | Timeout for `error`.