# SpatialAudioTrack

Artifact: [androidx.xr.scenecore:scenecore](https://developer.android.com/jetpack/androidx/releases/xr-scenecore) [View Source](https://cs.android.com/search?q=file:androidx/xr/scenecore/SpatialAudioTrack.kt+class:androidx.xr.scenecore.SpatialAudioTrack) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/xr-scenecore#1.0.0)

*** ** * ** ***


```
object SpatialAudioTrack
```

<br />

*** ** * ** ***

Provides spatial audio extensions on the framework `https://developer.android.com/reference/android/media/AudioTrack.html` class.

## Summary

| ### Public functions |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/PointSourceParams?` | `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SpatialAudioTrack#getPointSourceParams(androidx.xr.runtime.Session,android.media.AudioTrack)(session: https://developer.android.com/reference/kotlin/androidx/xr/runtime/Session, track: https://developer.android.com/reference/android/media/AudioTrack.html)` Gets the `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/PointSourceParams` of the provided `https://developer.android.com/reference/android/media/AudioTrack.html`. |
| `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SoundFieldAttributes?` | `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SpatialAudioTrack#getSoundFieldAttributes(androidx.xr.runtime.Session,android.media.AudioTrack)(session: https://developer.android.com/reference/kotlin/androidx/xr/runtime/Session, track: https://developer.android.com/reference/android/media/AudioTrack.html)` Gets the `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SoundFieldAttributes` of the provided `https://developer.android.com/reference/android/media/AudioTrack.html`. |
| `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SpatializerConstants.SourceType` | `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SpatialAudioTrack#getSpatialSourceType(androidx.xr.runtime.Session,android.media.AudioTrack)(session: https://developer.android.com/reference/kotlin/androidx/xr/runtime/Session, track: https://developer.android.com/reference/android/media/AudioTrack.html)` Gets the `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SpatializerConstants.SourceType` of the provided `https://developer.android.com/reference/android/media/AudioTrack.html`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SpatialAudioTrack#setPointSourceParams(androidx.xr.runtime.Session,android.media.AudioTrack,androidx.xr.scenecore.PointSourceParams,androidx.xr.scenecore.Entity)( session: https://developer.android.com/reference/kotlin/androidx/xr/runtime/Session, track: https://developer.android.com/reference/android/media/AudioTrack.html, params: https://developer.android.com/reference/kotlin/androidx/xr/scenecore/PointSourceParams, entity: https://developer.android.com/reference/kotlin/androidx/xr/scenecore/Entity )` Sets a new `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/PointSourceParams` on the provided `https://developer.android.com/reference/android/media/AudioTrack.html`. |

## Public functions

### getPointSourceParams

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/xr-scenecore#1.0.0)

```
fun getPointSourceParams(session: Session, track: AudioTrack): PointSourceParams?
```

Gets the `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/PointSourceParams` of the provided `https://developer.android.com/reference/android/media/AudioTrack.html`.

| Parameters |
|---|---|
| `session: https://developer.android.com/reference/kotlin/androidx/xr/runtime/Session` | The current `https://developer.android.com/reference/kotlin/androidx/xr/runtime/Session` instance. |
| `track: https://developer.android.com/reference/android/media/AudioTrack.html` | The `https://developer.android.com/reference/android/media/AudioTrack.html` from which to get the `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/PointSourceParams`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/PointSourceParams?` | The `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/PointSourceParams` of the provided track, null if not set. |

### getSoundFieldAttributes

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/xr-scenecore#1.0.0)

```
fun getSoundFieldAttributes(session: Session, track: AudioTrack): SoundFieldAttributes?
```

Gets the `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SoundFieldAttributes` of the provided `https://developer.android.com/reference/android/media/AudioTrack.html`.

| Parameters |
|---|---|
| `session: https://developer.android.com/reference/kotlin/androidx/xr/runtime/Session` | The current `https://developer.android.com/reference/kotlin/androidx/xr/runtime/Session` instance. |
| `track: https://developer.android.com/reference/android/media/AudioTrack.html` | The `https://developer.android.com/reference/android/media/AudioTrack.html` from which to get the `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SoundFieldAttributes`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SoundFieldAttributes?` | The `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SoundFieldAttributes` of the provided track, null if not set. |

### getSpatialSourceType

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/xr-scenecore#1.0.0)

```
fun getSpatialSourceType(session: Session, track: AudioTrack): SpatializerConstants.SourceType
```

Gets the `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SpatializerConstants.SourceType` of the provided `https://developer.android.com/reference/android/media/AudioTrack.html`. If `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SpatialAudioTrack#setPointSourceParams(androidx.xr.runtime.Session,android.media.AudioTrack,androidx.xr.scenecore.PointSourceParams,androidx.xr.scenecore.Entity)` has not yet been called, this value is determined by how the `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SpatialAudioTrackBuilder` was constructed. Will return `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SpatializerConstants.SourceType#DEFAULT()` for tracks that didn't use spatial audio attributes.

| Parameters |
|---|---|
| `session: https://developer.android.com/reference/kotlin/androidx/xr/runtime/Session` | The current `https://developer.android.com/reference/kotlin/androidx/xr/runtime/Session` instance. |
| `track: https://developer.android.com/reference/android/media/AudioTrack.html` | The `https://developer.android.com/reference/android/media/AudioTrack.html` from which to get the `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SpatializerConstants.SourceType`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SpatializerConstants.SourceType` | The `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SpatializerConstants.SourceType` of the provided track. |

### setPointSourceParams

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/xr-scenecore#1.0.0)

```
fun setPointSourceParams(
    session: Session,
    track: AudioTrack,
    params: PointSourceParams,
    entity: Entity
): Unit
```

Sets a new `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/PointSourceParams` on the provided `https://developer.android.com/reference/android/media/AudioTrack.html`.

The new `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/PointSourceParams` will be applied if the `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SpatializerConstants.SourceType` of the AudioTrack was either `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SpatializerConstants.SourceType#DEFAULT()` or `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SpatializerConstants.SourceType#POINT_SOURCE()`. If the `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SpatializerConstants.SourceType` was `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SpatializerConstants.SourceType#SOUND_FIELD()`, then this method will throw an `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-state-exception/index.html`.

| Parameters |
|---|---|
| `session: https://developer.android.com/reference/kotlin/androidx/xr/runtime/Session` | The current `https://developer.android.com/reference/kotlin/androidx/xr/runtime/Session` instance. |
| `track: https://developer.android.com/reference/android/media/AudioTrack.html` | The `https://developer.android.com/reference/android/media/AudioTrack.html` on which to set the `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/PointSourceParams`. |
| `params: https://developer.android.com/reference/kotlin/androidx/xr/scenecore/PointSourceParams` | The `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/PointSourceParams` to be set. |
| `entity: https://developer.android.com/reference/kotlin/androidx/xr/scenecore/Entity` | The `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/Entity` from which the sound will be played. |

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-state-exception/index.html` | if the `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SpatializerConstants.SourceType` of the `https://developer.android.com/reference/android/media/AudioTrack.html` is `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SpatializerConstants.SourceType#SOUND_FIELD()`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` | if the `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/PointSourceParams` cannot be set on this `https://developer.android.com/reference/android/media/AudioTrack.html` instance. |