<!--
{
  "documentType" : "article",
  "framework" : "AVFoundation",
  "identifier" : "/documentation/AVFoundation/streaming-and-airplay",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Streaming and AirPlay"
}
-->

# Streaming and AirPlay

Stream content wirelessly to other devices using AirPlay, and handle requests involving FairPlay-protected assets.

## Topics

### Essentials

[Supporting AirPlay in your app](/documentation/AVFoundation/supporting-airplay-in-your-app)

Set up your app to use AirPlay to send content wirelessly.

### Route selection

[`AVRouteDetector`](/documentation/AVFoundation/AVRouteDetector)

An object that detects available media playback routes.

### Buffered playback

[Implementing simple enhanced buffering for your content](/documentation/AVFoundation/implementing-simple-enhanced-buffering-for-your-content)

Configure your app for simple enhanced buffering to stream content faster to AirPlay-enabled devices and supported CarPlay vehicles.

[Implementing flexible enhanced buffering for your content](/documentation/AVFoundation/implementing-flexible-enhanced-buffering-for-your-content)

Configure your app for flexible enhanced buffering to stream content faster to AirPlay-enabled devices and supported CarPlay vehicles.

[Integrating AirPlay for long-form video apps](/documentation/AVFoundation/integrating-airplay-for-long-form-video-apps)

Integrate AirPlay features and implement a dedicated external playback experience by preparing the routing system for long-form video playback.

### Resource loading

[`AVAssetResourceLoader`](/documentation/AVFoundation/AVAssetResourceLoader)

An object that mediates resource requests from a URL asset.

[`AVAssetResourceLoaderDelegate`](/documentation/AVFoundation/AVAssetResourceLoaderDelegate)

Methods you can implement to handle resource-loading requests coming from a URL asset.

[`AVAssetResourceLoadingRequest`](/documentation/AVFoundation/AVAssetResourceLoadingRequest)

An object that encapsulates information about a resource request from a resource loader object.

[`AVAssetResourceRenewalRequest`](/documentation/AVFoundation/AVAssetResourceRenewalRequest)

An object that encapsulates information about a resource request from a resource loader to renew a previously issued request.

[`AVAssetResourceLoadingRequestor`](/documentation/AVFoundation/AVAssetResourceLoadingRequestor)

An object that contains information about the originator of a resource-loading request.

[`AVAssetResourceLoadingDataRequest`](/documentation/AVFoundation/AVAssetResourceLoadingDataRequest)

An object for requesting data from a resource that an asset resource-loading request references.

[`AVAssetResourceLoadingContentInformationRequest`](/documentation/AVFoundation/AVAssetResourceLoadingContentInformationRequest)

A query for retrieving essential information about a resource that an asset resource-loading request references.

### FairPlay streaming

[`AVContentKeySession`](/documentation/AVFoundation/AVContentKeySession)

An object that creates and tracks decryption keys for media data.

[`AVContentKeySessionDelegate`](/documentation/AVFoundation/AVContentKeySessionDelegate)

A protocol that handles content key requests.

[`AVContentKey`](/documentation/AVFoundation/AVContentKey)

An object that represents the content key decryptor.

[`AVContentKeySpecifier`](/documentation/AVFoundation/AVContentKeySpecifier)

An object that uniquely identifies a content key.

[`AVContentKeyRequest`](/documentation/AVFoundation/AVContentKeyRequest)

An object that encapsulates information about a content decryption key request issued from a content key session object.

[`AVPersistableContentKeyRequest`](/documentation/AVFoundation/AVPersistableContentKeyRequest)

An object that encapsulates information about a persistable content decryption key request issued from a content key session.

[`AVContentKeyResponse`](/documentation/AVFoundation/AVContentKeyResponse)

An object that encapsulates information about a response to a content decryption key request.

[`AVExternalContentProtectionStatus`](/documentation/AVFoundation/AVExternalContentProtectionStatus)

Constants that specify whether sufficient protection exists to display the content.

[`AVSampleBufferAttachContentKey(_:_:_:)`](/documentation/AVFoundation/AVSampleBufferAttachContentKey(_:_:_:))

Attaches a content key to a sample buffer for the purpose of content decryption.



---

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)