<!--
{
  "availability" : [
    "iOS: 27.0.0 -",
    "iPadOS: 27.0.0 -",
    "macCatalyst: 27.0.0 -",
    "macOS: 27.0.0 -",
    "tvOS: 27.0.0 -",
    "visionOS: 27.0.0 -",
    "watchOS: 27.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "NowPlaying",
  "identifier" : "/documentation/NowPlaying/MediaPlaybackSnapshot/init(state:defaultPlaybackRate:elapsedTime:timestamp:)",
  "metadataVersion" : "0.1.0",
  "role" : "Initializer",
  "symbol" : {
    "kind" : "Initializer",
    "modules" : [
      "Now Playing"
    ],
    "preciseIdentifier" : "s:10NowPlaying21MediaPlaybackSnapshotV5state07defaultD4Rate11elapsedTime9timestampA2C0D5StateO_SfSdSg10Foundation4DateVSgtcfc"
  },
  "title" : "init(state:defaultPlaybackRate:elapsedTime:timestamp:)"
}
-->

# init(state:defaultPlaybackRate:elapsedTime:timestamp:)

Creates a playback snapshot with the specified state and timing.

```
init(state: MediaPlaybackSnapshot.PlaybackState, defaultPlaybackRate: Float = 1.0, elapsedTime: TimeInterval? = nil, timestamp: Date? = nil)
```

## Parameters

`state`

The current playback state.

`defaultPlaybackRate`

The baseline rate the player returns to after temporary rate changes. Defaults to `1.0`.

`elapsedTime`

The current elapsed time, in seconds.

`timestamp`

The wall-clock time associated with `elapsedTime`, used to extrapolate the current position.

## Discussion> Precondition: When `state` is `.playing(let rate)`, `rate` must be finite and non-zero.

> Precondition: `defaultPlaybackRate` must be finite and greater than `0`.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)