<!--
{
  "availability" : [
    "iOS: 27.0.0 -",
    "iPadOS: 27.0.0 -",
    "macCatalyst: 27.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "MediaDevice",
  "identifier" : "/documentation/MediaDevice/MediaDeviceRoutingManager/started(application:playbackControl:session:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "Media Device"
    ],
    "preciseIdentifier" : "s:11MediaDevice0aB14RoutingManagerC7started11application15playbackControl7sessionySSSg_xAA0A13OutputSessionCt5AVKit35AVPlaybackUserInterfaceControllableRzlF"
  },
  "title" : "started(application:playbackControl:session:)"
}
-->

# started(application:playbackControl:session:)

Notifies the system that a remote application has successfully started on the target device.

```
@MainActor final func started<T>(application applicationIdentifier: String?, playbackControl: T, session: MediaOutputSession) where T : AVPlaybackUserInterfaceControllable
```

## Parameters

`applicationIdentifier`

A unique identifier for the application running on the remote device.
For a default media playback experience on the remote device, use `nil`.

`playbackControl`

An object conforming to `AVPlaybackUserInterfaceControllable` that provides playback
control capabilities (play, pause, seek, etc.) for the remote session.

`session`

The [`MediaOutputSession`](/documentation/MediaDevice/MediaOutputSession) associated with this playback session.

## Discussion

Call this function when your extension has successfully launched or connected to an application
on the remote device and is ready to begin media playback. This indicates that the
session has been established and the remote application is prepared to receive media content
or playback commands.

This function should be called after the following conditions are met:

- The connection to the remote device has been established
- The remote application has been launched or awakened
- The playback interface is ready to accept commands
- Any necessary authentication or session initialization has completed

After calling this function, the system will be able to route media playback to the device
and provide playback controls through the `playbackControl` interface.

> Important: Call this function on the main actor to ensure thread-safe state updates.

> SeeAlso: ``doc://com.apple.mediadevice/documentation/MediaDevice/MediaDeviceRoutingManager/sessionFailed(_:error:)``

> SeeAlso: ``AVPlaybackUserInterfaceControllable``

---

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)