# MuteButtonState

Artifact: [androidx.media3:media3-ui-compose](https://developer.android.com/jetpack/androidx/releases/media3) [View Source](https://cs.android.com/search?q=file:androidx/media3/ui/compose/state/MuteButtonState.kt+class:androidx.media3.ui.compose.state.MuteButtonState)

<br />

```
@UnstableApi
class MuteButtonState
```

<br />

*** ** * ** ***

State that holds all interactions to correctly deal with a UI component representing a Mute button.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/MuteButtonState#MuteButtonState(androidx.media3.common.Player)(player: https://developer.android.com/reference/kotlin/androidx/media3/common/Player?)` |

| ### Public functions |
|---|---|
| `suspend https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/MuteButtonState#observe()()` Subscribes to updates from `https://developer.android.com/reference/kotlin/androidx/media3/common/Player.Events` and listens to |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/MuteButtonState#onClick()()` Handles the interaction with the Mute button according to the current state of the `https://developer.android.com/reference/kotlin/androidx/media3/common/Player`. |

| ### Public properties |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/MuteButtonState#isEnabled()` true if `https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/MuteButtonState#player()` is not `null` and commands `https://developer.android.com/reference/kotlin/androidx/media3/common/Player#COMMAND_SET_VOLUME()` and `https://developer.android.com/reference/kotlin/androidx/media3/common/Player#COMMAND_GET_VOLUME()` are available. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/MuteButtonState#showMuted()` true if `https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/MuteButtonState#player()` is not `null` and `https://developer.android.com/reference/kotlin/androidx/media3/common/Player#volume()` is 0.0f. |

## Public constructors

### MuteButtonState

```
MuteButtonState(player: Player?)
```

## Public functions

### observe

```
suspend fun observe(): Unit
```

Subscribes to updates from `https://developer.android.com/reference/kotlin/androidx/media3/common/Player.Events` and listens to

- `https://developer.android.com/reference/kotlin/androidx/media3/common/Player#EVENT_VOLUME_CHANGED()` in order to determine whether a mute button should show a mute or unmuted icon.

- `https://developer.android.com/reference/kotlin/androidx/media3/common/Player#EVENT_AVAILABLE_COMMANDS_CHANGED()` in order to determine whether the button should be enabled, i.e. respond to user input.

### onClick

```
fun onClick(): Unit
```

Handles the interaction with the Mute button according to the current state of the `https://developer.android.com/reference/kotlin/androidx/media3/common/Player`. Toggled between a muted state (volume of the Player is 0) and non-muted. Does not influence the volume of the device.

This method does nothing if `https://developer.android.com/reference/kotlin/androidx/media3/common/Player#COMMAND_SET_VOLUME()` is not available.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/common/Player#mute()` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/Player#unmute()` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/Player#COMMAND_GET_VOLUME()` |   |
| `https://developer.android.com/reference/kotlin/androidx/media3/common/Player#COMMAND_SET_VOLUME()` |   |

## Public properties

### isEnabled

```
val isEnabled: Boolean
```

true if `https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/MuteButtonState#player()` is not `null` and commands `https://developer.android.com/reference/kotlin/androidx/media3/common/Player#COMMAND_SET_VOLUME()` and `https://developer.android.com/reference/kotlin/androidx/media3/common/Player#COMMAND_GET_VOLUME()` are available.

### showMuted

```
val showMuted: Boolean
```

true if `https://developer.android.com/reference/kotlin/androidx/media3/ui/compose/state/MuteButtonState#player()` is not `null` and `https://developer.android.com/reference/kotlin/androidx/media3/common/Player#volume()` is 0.0f.