# AudioAttachment

Renders audio attachment controls inside [MessageList](/chat/docs/sdk/react-native/v8/ui-components/message-list/) and [MessageInput](/chat/docs/sdk/react-native/v8/ui-components/message-input/). This is the default component for the [`AudioAttachment`](/chat/docs/sdk/react-native/v8/core-components/channel#audioattachment/) prop.

## Best Practices

- Use the provided callbacks (`onLoad`, `onProgress`, `onPlayPause`) to sync UI state.
- Avoid heavy logic in progress handlers to keep playback smooth.
- Respect concurrent playback settings from the `Channel`/Audio provider.
- Provide clear play/pause affordances and accessibility labels.
- Test on both iOS and Android for consistent audio behavior.

## Props

### `item`

| Type                                         |
| -------------------------------------------- |
| object(duration, progress, paused, id, file) |

### `onLoad`

| Type                                        |
| ------------------------------------------- |
| `(index: string, duration: number) => void` |

### `onProgress`

| Type                                                              |
| ----------------------------------------------------------------- |
| `(index: string, currentTime?: number, hasEnd?: boolean) => void` |

### `onPlayPause`

| Type                                              |
| ------------------------------------------------- |
| `(index: string, pausedStatus?: boolean) => void` |

### `testID`

| Type   |
| ------ |
| String |


---

This page was last updated at 2026-04-17T17:33:44.642Z.

For the most recent version of this documentation, visit [https://getstream.io/chat/docs/sdk/react-native/v8/ui-components/audio-attachment/](https://getstream.io/chat/docs/sdk/react-native/v8/ui-components/audio-attachment/).