---
title: "prepareAudio(configuration:_:)"
framework: realitykit
role: symbol
role_heading: Instance Method
path: "realitykit/entity/prepareaudio(configuration:_:)"
---

# prepareAudio(configuration:_:)

Prepares a real-time audio playback instances.

## Declaration

```swift
@MainActor @preconcurrency func prepareAudio(configuration: AudioGeneratorConfiguration = .init(), _ generatorRenderHandler: @escaping Audio.GeneratorRenderHandler) throws -> AudioGeneratorController
```

## Parameters

- `configuration`: A set of configuration parameters necessary for initializing and rendering the generatorRenderHandler.
- `generatorRenderHandler`: The audio render handler to prepare. The system runs this handler to generate real-time audio.

## Return Value

Return Value An AudioGeneratorController instance that you use to manage audio playback. Use the controller to set the volume and start or stop playback.

## Discussion

Discussion If you want to start playback immediately, use the playAudio(configuration:_:) method instead. note: See Audio.GeneratorRenderHandler for compliance with Swift 6 concurrency.

## See Also

### Playing audio

- [playAudio(_:)](realitykit/entity/playaudio(_:).md)
- [playAudio(configuration:_:)](realitykit/entity/playaudio(configuration:_:).md)
- [prepareAudio(_:)](realitykit/entity/prepareaudio(_:).md)
- [stopAllAudio()](realitykit/entity/stopallaudio().md)
- [spatialAudio](realitykit/entity/spatialaudio.md)
- [ambientAudio](realitykit/entity/ambientaudio.md)
- [channelAudio](realitykit/entity/channelaudio.md)
