Version Packages - #456
Merged
Merged
Conversation
github-actions
Bot
requested review from
davidliu,
hiroshihorie and
xianshijing-lk
as code owners
September 11, 2026 17:16
There was a problem hiding this comment.
🔍 Devin Review: 1 flag
Not posted on this PR by your GitHub settings — view it in Devin Review. (Configure)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@livekit/react-native@3.0.0
Major Changes
Move to the LiveKit prefixed WebRTC builds:
io.github.webrtc-sdk:android-prefixedon Android and theLiveKitWebRTCpod on iOS. This prevents collisions against any other WebRTC implementations. - #455 (@davidliu)Apps that only use the JavaScript API need no changes.
Native integrations must migrate to the prefixed symbols:
org.webrtc.*becomeslivekit.org.webrtc.*.Custom
-keep class org.webrtc.**ProGuard rules must be updated tolivekit.org.webrtc.**.LKprefix (RTCAudioRendererbecomesLKRTCAudioRenderer,RTCAudioBufferbecomesLKRTCAudioBuffer, and so on).Minor Changes
iOS: align the default
playAndRecordpresets with the LiveKit Swift SDK. - #455 (@davidliu)The duplex (recording) presets now request
mixWithOthers,allowBluetooth,allowBluetoothA2DPandallowAirPlay, matchingplayAndRecordOptionsin theSwift SDK. Previously only
allowBluetoothandmixWithOtherswere requested,so A2DP output devices and AirPlay routes were unavailable during a call on this
platform but available on others.
When
preferSpeakerOutputis set,defaultToSpeakeris now requested as well.The
videoChatmode implies a speaker route, but iOS may rewrite the mode whenVoice Processing I/O is instantiated - the Swift SDK observed it switching to
voiceChat, which routes to the receiver. Requesting the option explicitlykeeps the speaker route across that rewrite.
This affects the defaults used by
setupIOSAudioManagementand the deprecatedgetDefaultAppleAudioConfigurationForMode. A customIOSAudioSessionPolicyorAppleAudioConfigurationis unaffected - those supply their own options.iOS: pick the audio session mode based on Apple Voice Processing I/O state. - #455 (@davidliu)
iOS applies a reduced, call-tuned speaker gain while capture is active under the
voiceChat/videoChatsession modes. Apple Voice Processing I/O compensateswith its own loudness stage, so with VPIO off remote audio played back
noticeably quieter.
LiveKitWebRTC144.7559.15 reports the resolved VPIO state to the audio devicemodule's
willEnableEnginehook. The default recording configuration now usesthat: with VPIO running it keeps
voiceChat/videoChatas before, and with VPIOoff (for example after
AudioDeviceModule.setVoiceProcessingEnabled(false)) itswitches to the
defaultmode, which keeps media gain. That mode routes to thereceiver, so
preferSpeakerOutputis expressed through thedefaultToSpeakercategory option instead of the implicit routing the chat modes provide. This
matches what the LiveKit Swift SDK already does.
IOSAudioSessionPolicygains an optionalrecordingWithoutVoiceProcessingconfiguration for the VPIO-off case. Policies that omit it keep using their
recordingconfiguration for both, so existing setups are unaffected.AudioEngineConfigurationState, passed to the deprecatedsetupIOSAudioManagementcallback form, gains a matchingisVoiceProcessingEnabledfield.Requires
@livekit/react-native-webrtcwith the five-argumentwillEnableEnginedelegate method. Older versions crash with an unrecognized selector when the
audio engine first enables.