diff --git a/.changeset/slow-olives-fry.md b/.changeset/slow-olives-fry.md new file mode 100644 index 0000000000..eee857f7be --- /dev/null +++ b/.changeset/slow-olives-fry.md @@ -0,0 +1,5 @@ +--- +'livekit-client': patch +--- + +Skip pre-populated media sections for single peer connections on React Native diff --git a/src/room/RTCEngine.ts b/src/room/RTCEngine.ts index 5a5aa006bd..003db5fc8c 100644 --- a/src/room/RTCEngine.ts +++ b/src/room/RTCEngine.ts @@ -92,6 +92,7 @@ import type { LoggerOptions } from './types'; import { Future, isPublisherOfferWithJoinSupported, + isReactNative, isVideoCodec, isVideoTrack, isWeb, @@ -857,7 +858,15 @@ export default class RTCEngine extends (EventEmitter as new () => TypedEventEmit */ private applyInitialPublisherLayout() { this.createDataChannels(); - this.addMediaSections(initialMediaSectionsAudio, initialMediaSectionsVideo); + /** + * Native libwebrtc does not support pre-populating the media sections, + * so we skip it for React Native. + * + * Related: https://github.com/livekit/rust-sdks/pull/1151 + */ + if (!isReactNative()) { + this.addMediaSections(initialMediaSectionsAudio, initialMediaSectionsVideo); + } } private addMediaSections(numAudios: number, numVideos: number) {