# SoundEffectPlayer

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/SoundEffectPlayer.kt+class:androidx.xr.scenecore.SoundEffectPlayer) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/xr-scenecore#1.0.0)

*** ** * ** ***


```
interface SoundEffectPlayer
```

<br />

Known direct subclasses [SoundEffectPoolComponent](https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SoundEffectPoolComponent)

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SoundEffectPoolComponent` | Provides positional sound pool audio playback for an `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/Entity`. |

*** ** * ** ***

Provides playback control for instances of `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SoundEffect`.

## Summary

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SoundEffectPlayer#pause(androidx.xr.scenecore.Stream)(stream: https://developer.android.com/reference/kotlin/androidx/xr/scenecore/Stream)` Pauses a currently playing sound stream. |
| `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/Stream` | `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SoundEffectPlayer#play(androidx.xr.scenecore.SoundEffect,kotlin.Float,kotlin.Int,kotlin.Boolean)( soundEffect: https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SoundEffect, volume: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = 0.0, to = 1.0) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, priority: @https://developer.android.com/reference/kotlin/androidx/annotation/IntRange(from = 0) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, isLooping: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Plays a loaded sound effect. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SoundEffectPlayer#resume(androidx.xr.scenecore.Stream)(stream: https://developer.android.com/reference/kotlin/androidx/xr/scenecore/Stream)` Resumes a previously paused sound stream. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SoundEffectPlayer#setLooping(androidx.xr.scenecore.Stream,kotlin.Boolean)(stream: https://developer.android.com/reference/kotlin/androidx/xr/scenecore/Stream, isLooping: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Updates the looping status of an active stream. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SoundEffectPlayer#setVolume(androidx.xr.scenecore.Stream,kotlin.Float)(stream: https://developer.android.com/reference/kotlin/androidx/xr/scenecore/Stream, volume: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = 0.0, to = 1.0) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html)` Updates the volume of an active stream. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SoundEffectPlayer#stop(androidx.xr.scenecore.Stream)(stream: https://developer.android.com/reference/kotlin/androidx/xr/scenecore/Stream)` Stops a currently playing or paused sound stream and releases that stream ID. |

## Public functions

### pause

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

```
fun pause(stream: Stream): Unit
```

Pauses a currently playing sound stream.

If the `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SoundEffectPlayer#pause(androidx.xr.scenecore.Stream)` has already been stopped or released due to hitting the max stream count then this method has no effect.

| Parameters |
|---|---|
| `stream: https://developer.android.com/reference/kotlin/androidx/xr/scenecore/Stream` | a `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/Stream` returned by `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SoundEffectPlayer#play(androidx.xr.scenecore.SoundEffect,kotlin.Float,kotlin.Int,kotlin.Boolean)` |

### play

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

```
fun play(
    soundEffect: SoundEffect,
    volume: @FloatRange(from = 0.0, to = 1.0) Float,
    priority: @IntRange(from = 0) Int,
    isLooping: Boolean
): Stream
```

Plays a loaded sound effect.

The `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SoundEffect`s can play concurrently up to the max stream count of the `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SoundEffectPool` from which they were loaded. If the max stream count is exceeded, streams with lower priority are stopped first.

| Parameters |
|---|---|
| `soundEffect: https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SoundEffect` | the handle to the loaded `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SoundEffect` to play |
| `volume: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = 0.0, to = 1.0) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | volume in the range 0.0 to 1.0 |
| `priority: @https://developer.android.com/reference/kotlin/androidx/annotation/IntRange(from = 0) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | playback priority (0 = lowest) |
| `isLooping: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true to loop indefinitely, false to play once |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/Stream` | a `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/Stream` for controlling this specific instance of the sound |

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-runtime-exception/index.html` | if the sound effect fails to play |

### resume

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

```
fun resume(stream: Stream): Unit
```

Resumes a previously paused sound stream.

If the `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SoundEffectPlayer#resume(androidx.xr.scenecore.Stream)` has already been stopped or released due to hitting the max stream count then this method has no effect.

| Parameters |
|---|---|
| `stream: https://developer.android.com/reference/kotlin/androidx/xr/scenecore/Stream` | a `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/Stream` returned by `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SoundEffectPlayer#play(androidx.xr.scenecore.SoundEffect,kotlin.Float,kotlin.Int,kotlin.Boolean)` |

### setLooping

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

```
fun setLooping(stream: Stream, isLooping: Boolean): Unit
```

Updates the looping status of an active stream.

If the `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SoundEffectPlayer#setLooping(androidx.xr.scenecore.Stream,kotlin.Boolean)` has already been stopped or released due to hitting the max stream count then this method has no effect.

| Parameters |
|---|---|
| `stream: https://developer.android.com/reference/kotlin/androidx/xr/scenecore/Stream` | a `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/Stream` returned by `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SoundEffectPlayer#play(androidx.xr.scenecore.SoundEffect,kotlin.Float,kotlin.Int,kotlin.Boolean)` |
| `isLooping: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true to loop indefinitely, false to stop looping |

### setVolume

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

```
fun setVolume(stream: Stream, volume: @FloatRange(from = 0.0, to = 1.0) Float): Unit
```

Updates the volume of an active stream.

If the `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SoundEffectPlayer#setVolume(androidx.xr.scenecore.Stream,kotlin.Float)` has already been stopped or released due to hitting the max stream count then this method has no effect.

| Parameters |
|---|---|
| `stream: https://developer.android.com/reference/kotlin/androidx/xr/scenecore/Stream` | a `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/Stream` returned by `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SoundEffectPlayer#play(androidx.xr.scenecore.SoundEffect,kotlin.Float,kotlin.Int,kotlin.Boolean)` |
| `volume: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = 0.0, to = 1.0) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | volume in the range 0.0 to 1.0 |

### stop

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

```
fun stop(stream: Stream): Unit
```

Stops a currently playing or paused sound stream and releases that stream ID.

If the `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SoundEffectPlayer#stop(androidx.xr.scenecore.Stream)` has already been stopped or released due to hitting the max stream count then this method has no effect.

| Parameters |
|---|---|
| `stream: https://developer.android.com/reference/kotlin/androidx/xr/scenecore/Stream` | a `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/Stream` returned by `https://developer.android.com/reference/kotlin/androidx/xr/scenecore/SoundEffectPlayer#play(androidx.xr.scenecore.SoundEffect,kotlin.Float,kotlin.Int,kotlin.Boolean)` |