<!--
{
  "availability" : [
    "iOS: 27.0.0 -",
    "iOSAppExtension: -",
    "iPadOS: 27.0.0 -",
    "macCatalyst: 27.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "NowPlaying",
  "identifier" : "/documentation/NowPlaying/RemoteMediaSession/start(attributes:)",
  "metadataVersion" : "0.1.0",
  "role" : "Type Method",
  "symbol" : {
    "kind" : "Type Method",
    "modules" : [
      "Now Playing"
    ],
    "preciseIdentifier" : "s:10NowPlaying18RemoteMediaSessionC5start10attributesACyxGx_tYaKFZ"
  },
  "title" : "start(attributes:)"
}
-->

# start(attributes:)

Starts a new remote session with the specified attributes.

```
@MainActor static func start(attributes: Attributes) async throws -> RemoteMediaSession<Attributes>
```

## Parameters

`attributes`

The attributes that configure the session.

## Return Value

A remote session instance.

## Discussion

This method registers a session. The attributes are encoded and sent to your
app extension, which creates the actual session using your [`RemoteMediaSessionExtension`](/documentation/NowPlaying/RemoteMediaSessionExtension)
conformance.

> Throws: ``doc://com.apple.nowplaying/documentation/NowPlaying/RemoteMediaSessionError/internalFailure`` if the system couldn’t register
> the session. Also throws an encoding error if `attributes` isn’t encodable.

---

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)