<!--
{
  "availability" : [
    "iOS: 13.0.0 -",
    "iPadOS: 13.0.0 -",
    "macCatalyst: 13.0.0 -",
    "macOS: 10.15.0 -",
    "tvOS: 26.0.0 -",
    "visionOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "RealityKit",
  "identifier" : "/documentation/RealityKit/AudioFileResource",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "RealityKit"
    ],
    "preciseIdentifier" : "s:17RealityFoundation17AudioFileResourceC"
  },
  "title" : "AudioFileResource"
}
-->

# AudioFileResource

An audio resource that you load from a file or from a URL.

```
@MainActor @preconcurrency class AudioFileResource
```

## Overview

Load an audio file resource, like an audio file stored in .aiff or other format, by calling one of the load functions.
Use the resource to create an [`AudioPlaybackController`](/documentation/RealityKit/AudioPlaybackController) instance by calling an entity’s [`prepareAudio(_:)`](/documentation/RealityKit/Entity/prepareAudio(_:)) or [`playAudio(_:)`](/documentation/RealityKit/Entity/playAudio(_:)) function.
The controller plays the audio from the location in space of the entity that created the controller.

## Topics

### Loading audio from a bundle

[`convenience init(named: String, from: String, in: Bundle?) async throws`](/documentation/RealityKit/AudioFileResource/init(named:from:in:))

Initializes a preconfigured AudioFileResource asynchronously from a Reality Composer Pro project
with the given `name` as the the prim-path of the AudioFile, and the `scene` as
the name of the USD file name.

[`convenience init(named: String, in: Bundle?, configuration: AudioFileResource.Configuration) async throws`](/documentation/RealityKit/AudioFileResource/init(named:in:configuration:))

Initializes an AudioFileResource asynchronously.

### Loading audio from a URL

[`convenience init(contentsOf: URL, withName: String?, configuration: AudioFileResource.Configuration) async throws`](/documentation/RealityKit/AudioFileResource/init(contentsOf:withName:configuration:))

Initializes an AudioFileResource asynchronously.

### Describing the resource

[`let configuration: AudioFileResource.Configuration`](/documentation/RealityKit/AudioFileResource/configuration-swift.property)

The configuration of this `AudioFileResource`.

[`var duration: Duration`](/documentation/RealityKit/AudioFileResource/duration)

The duration of this `AudioFileResource`.

[`let name: String`](/documentation/RealityKit/AudioFileResource/name)

The name of this `AudioFileResource`.

### Supporting types

[`struct Configuration`](/documentation/RealityKit/AudioFileResource/Configuration-swift.struct)

A container for various settings for loading an audio file resource.

[`enum LoadingStrategy`](/documentation/RealityKit/AudioFileResource/LoadingStrategy-swift.enum)

A container for different strategies on how to handle resources’ data before and during playback.

### Deprecated

[`static func load(named: String, in: Bundle?, inputMode: AudioResource.InputMode, loadingStrategy: AudioFileResource.LoadingStrategy, shouldLoop: Bool) throws -> AudioFileResource`](/documentation/RealityKit/AudioFileResource/load(named:in:inputMode:loadingStrategy:shouldLoop:))

Synchronously loads an audio resource.

[`static func loadAsync(named: String, in: Bundle?, inputMode: AudioResource.InputMode, loadingStrategy: AudioFileResource.LoadingStrategy, shouldLoop: Bool) -> LoadRequest<AudioFileResource>`](/documentation/RealityKit/AudioFileResource/loadAsync(named:in:inputMode:loadingStrategy:shouldLoop:))

[`static func load(contentsOf: URL, withName: String?, inputMode: AudioResource.InputMode, loadingStrategy: AudioFileResource.LoadingStrategy, shouldLoop: Bool) throws -> AudioFileResource`](/documentation/RealityKit/AudioFileResource/load(contentsOf:withName:inputMode:loadingStrategy:shouldLoop:))

Synchronously loads an audio resource.

[`static func loadAsync(contentsOf: URL, withName: String?, inputMode: AudioResource.InputMode, loadingStrategy: AudioFileResource.LoadingStrategy, shouldLoop: Bool) -> LoadRequest<AudioFileResource>`](/documentation/RealityKit/AudioFileResource/loadAsync(contentsOf:withName:inputMode:loadingStrategy:shouldLoop:))

[`var loadingStrategy: AudioFileResource.LoadingStrategy`](/documentation/RealityKit/AudioFileResource/loadingStrategy-swift.property)

The resource’s memory model.

[`var shouldLoop: Bool`](/documentation/RealityKit/AudioFileResource/shouldLoop)

Whether or not this file loops during playback. This should be set for assets
that are prepared as seamless loops. A looping resource will play forever until it is
explicitly told to stop.

### Creating an audio resource

[`convenience init(from: Data, configuration: AudioFileResource.Configuration) async throws`](/documentation/RealityKit/AudioFileResource/init(from:configuration:))

Initializes an AudioFileResource from in-memory data asynchronously.

### Operators

[`static func == (AudioFileResource, AudioFileResource) -> Bool`](/documentation/RealityKit/AudioFileResource/==(_:_:))

### Type Methods

[`static func load(contentsOf: URL, withName: String?, configuration: AudioFileResource.Configuration) throws -> AudioFileResource`](/documentation/RealityKit/AudioFileResource/load(contentsOf:withName:configuration:))

Loads an AudioFileResource synchronously.

[`static func load(named: String, from: String, in: Bundle?) throws -> AudioFileResource`](/documentation/RealityKit/AudioFileResource/load(named:from:in:))

Loads a preconfigured AudioFileResource from a Reality Composer Pro project with the given
`name` as the the prim-path of the AudioFile, and the `scene` as the name of the
USD file name.

[`static func load(named: String, in: Bundle?, configuration: AudioFileResource.Configuration) throws -> AudioFileResource`](/documentation/RealityKit/AudioFileResource/load(named:in:configuration:))

Loads an AudioFileResource synchronously.

## Relationships

### Conforms To

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

[`Equatable`](/documentation/Swift/Equatable)

[`Hashable`](/documentation/Swift/Hashable)

[`Resource`](/documentation/RealityKit/Resource)

[`Sendable`](/documentation/Swift/Sendable)

### Inherits From

[`AudioResource`](/documentation/RealityKit/AudioResource)

---

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)