Skip to content

🐛 iOS Camera Orientation Issue in Landscape-Only App #1522

@kumVineet

Description

@kumVineet

Description

Bug Description

When using the 100ms React Native SDK in an app that is locked to landscape orientation, the iOS camera captures video in portrait orientation instead of matching the app's landscape orientation. This causes video misalignment for both the local peer preview and for all remote participants (including web clients).

Android works correctly - this issue is iOS-specific.

Actual Behavior

  1. iOS camera captures video in portrait orientation (rotated 90°)
  2. Local peer preview shows incorrectly oriented video
  3. Remote peers receive portrait-oriented video stream
  4. Video tiles are misaligned across all platforms
  5. Web host sees iOS participants' video rotated/misaligned

100ms React Native Version

1.12.0

React Native Version

0.78.3

Steps to reproduce

  1. Create a new React Native app (or use existing)

  2. Install @100mslive/react-native-hms

  3. Lock the app to landscape-only orientation:

    Info.plist:

   UISupportedInterfaceOrientations
   
       UIInterfaceOrientationLandscapeLeft
       UIInterfaceOrientationLandscapeRight
   
  1. Initialize HMSSDK and join a room:
   const hmsInstance = await HMSSDK.build();
   await hmsInstance.join(config);
  1. Enable camera on iOS device
  2. Observe local preview - video is in portrait orientation
  3. Join same room from web browser or another device
  4. Observe that iOS participant's video appears rotated/misaligned

Expected results

  1. When the app is locked to landscape orientation, the iOS camera should capture video in landscape orientation
  2. The local peer preview should display video in correct landscape aspect ratio
  3. Remote peers (iOS, Android, and Web) should receive video in landscape orientation
  4. Video tiles should align correctly without any rotation or aspect ratio mismatch

Code example, screenshot, or link to a repository

Code sample

Logs

Logs
<!-- Paste your logs here -->

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions