Skip to content

Conversation

@santhoshvai
Copy link
Member

@santhoshvai santhoshvai commented Jun 30, 2025

💡 Overview

  • Support for audio output device selection
  • Support to turn off low latency audio output for audio subscriber only usecases like livestream viewership
  • Support for system wide audio muting and unmuting

fixes: #1829

📑 Docs: https://github.com/GetStream/docs-content/pull/603

Copy link
Member Author

@santhoshvai santhoshvai Sep 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no more objective C code basically, this file is only a mapper for swift here on

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not relevant to this PR, but this change is for video dimensions for livestream from #1882

@santhoshvai santhoshvai marked this pull request as ready for review September 12, 2025 10:40
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unrelevant to this PR, but i found this small optimisation while doing webrtc snapsots myself

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR moves the audio route manager functionality inside the SDK by introducing a new StreamInCallManager that handles audio routing, device selection, and system-wide audio controls. This replaces the dependency on the external react-native-incall-manager library with native implementations for both iOS and Android platforms.

  • Introduces StreamInCallManager with support for audio output device selection and system audio muting/unmuting
  • Removes dependency on react-native-incall-manager library across all sample apps and the main SDK
  • Adds native Android and iOS implementations for comprehensive audio management

Reviewed Changes

Copilot reviewed 40 out of 47 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
packages/react-native-sdk/src/StreamInCallManager/index.ts New TypeScript interface for the native audio manager with device selection and muting capabilities
packages/react-native-sdk/ios/StreamInCallManager.swift Native iOS implementation handling audio session configuration and device routing
packages/react-native-sdk/android/src/main/java/com/streamvideo/reactnative/callmanager/StreamInCallManagerModule.kt Native Android module providing audio device management and routing functionality
sample-apps/react-native/dogfood/src/components/CallControlls/MoreActionsButton.tsx Updates to use new audio route picker functionality
packages/react-native-sdk/src/components/Livestream/LivestreamControls/ViewerLivestreamControls.tsx Migration from react-native-incall-manager to StreamInCallManager for audio output control

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@oliverlaz oliverlaz merged commit 847dd30 into main Oct 7, 2025
16 checks passed
@oliverlaz oliverlaz deleted the audio-sdk-impl branch October 7, 2025 13:12
oliverlaz added a commit that referenced this pull request Oct 8, 2025
Follow-up to #1840. Fixes a compatibility issue with RN 0.80+.
oliverlaz added a commit that referenced this pull request Oct 27, 2025
)

When we migrated away from InCallManager (#1840) to our in-house
`callManager`, we didn't port the Wake Lock on iOS and proximity sensing
on both Android and iOS.
This PR closes that gap.

🎫 Ticket: https://linear.app/stream/issue/RN-291/screen-auto-lock
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Audio Output device selection

3 participants