# 1.22.0

Audio output management has been revamped!

## 🔨 What changed?

The SDK no longer depends on `react-native-incall-manager` for audio output management. Native methods and state management are now built into the SDK.

## 💡 How to migrate?

### Setup

Remove `react-native-incall-manager` from your dependencies:

```bash
npm uninstall react-native-incall-manager
# or using yarn
yarn remove react-native-incall-manager
```

The peer dependency for `@stream-io/react-native-webrtc` is now `>=125.4.4`. Ensure this requirement is met.

### Usage

Call `start()` from the `callManager` module before or immediately after joining a call. Call `stop()` when leaving:

```tsx
import { callManager } from "@stream-io/video-react-native-sdk";

// To be called before joining a call or as soon as joining a call
callManager.start({
  audioRole: "communicator",
  deviceEndpointType: "speaker",
});

// To be called when a call is left
callManager.stop();
```

See our [Speaker management documentation](https://getstream.io/video/docs/react-native/guides/camera-and-microphone/#speaker-management) for details.

## ✨ New Features

- **Audio output device selection** - choose between available audio outputs
- **Low latency toggle** - disable low latency for audio-only use cases like livestream viewership
- **System audio control** - system-wide audio muting and unmuting

---

For the most recent version of this documentation, visit [https://getstream.io/video/docs/react-native/migration-guides/1.22.0/](https://getstream.io/video/docs/react-native/migration-guides/1.22.0/).