---
title: RemoteMediaSessionExtension
framework: nowplaying
role: symbol
role_heading: Protocol
path: nowplaying/remotemediasessionextension
---

# RemoteMediaSessionExtension

An app extension that provides remote media sessions.

## Declaration

```swift
@MainActor protocol RemoteMediaSessionExtension<Attributes> : AppExtension
```

## Mentioned in

Publishing remote media sessions

## Overview

Overview Implement this protocol in your app extension to handle remote playback sessions. The following example shows a basic extension implementation: @main struct MyPlaybackExtension: RemoteMediaSessionExtension {     var configuration: RemoteMediaSessionExtensionConfiguration<Self> {         RemoteMediaSessionExtensionConfiguration(extension: self)     }

func session(_ attributes: MySessionAttributes) async throws -> MySession {         return MySession(attributes: attributes)     } }

## Topics

### Associated Types

- [Attributes](nowplaying/remotemediasessionextension/attributes.md)
- [Session](nowplaying/remotemediasessionextension/session.md)

### Instance Methods

- [session(_:)](nowplaying/remotemediasessionextension/session(_:).md)

## Relationships

### Inherits From

- [AppExtension](extensionfoundation/appextension.md)

## See Also

### Remote sessions

- [Publishing remote media sessions](nowplaying/publishing-remote-media-sessions.md)
- [RemoteMediaSessionRepresentable](nowplaying/remotemediasessionrepresentable.md)
- [RemoteMediaSession](nowplaying/remotemediasession.md)
- [RemoteMediaSessionExtensionConfiguration](nowplaying/remotemediasessionextensionconfiguration.md)
- [RemoteMediaSessionAttributes](nowplaying/remotemediasessionattributes.md)
- [RemoteMediaSessionError](nowplaying/remotemediasessionerror.md)
- [MediaDevice](nowplaying/mediadevice.md)
