-
Notifications
You must be signed in to change notification settings - Fork 39
feat: move audio route manager inside SDK #1840
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
# Conflicts: # packages/react-native-sdk/src/components/Call/CallContent/CallContent.tsx # sample-apps/react-native/dogfood/ios/Podfile.lock
# Conflicts: # sample-apps/react-native/dogfood/ios/Podfile.lock
# Conflicts: # sample-apps/react-native/dogfood/ios/Podfile.lock
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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
There was a problem hiding this 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
StreamInCallManagerwith support for audio output device selection and system audio muting/unmuting - Removes dependency on
react-native-incall-managerlibrary 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.
sample-apps/react-native/dogfood/src/screens/LiveStream/ViewLiveStream.tsx
Show resolved
Hide resolved
packages/react-native-sdk/src/components/Livestream/ViewerLivestream/ViewerLivestream.tsx
Show resolved
Hide resolved
packages/react-native-sdk/src/components/Call/CallContent/CallContent.tsx
Show resolved
Hide resolved
# Conflicts: # packages/noise-cancellation-react-native/android/build.gradle # packages/react-native-sdk/ios/StreamVideoReactNative.h # packages/react-native-sdk/ios/StreamVideoReactNative.m # sample-apps/react-native/dogfood/ios/Podfile.lock # sample-apps/react-native/expo-video-sample/package.json # yarn.lock
Follow-up to #1840. Fixes a compatibility issue with RN 0.80+.
) 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
💡 Overview
fixes: #1829
📑 Docs: https://github.com/GetStream/docs-content/pull/603