Ensures correct audio and video device selection by applying
`exact` or `ideal` constraints when creating or restarting
media tracks.
This improves device handling and avoids potential issues when
switching between different audio or video devices.
Refactors camera and microphone switching logic in the prejoin state.
Uses `restartTrack` to preserve track settings and background processor state.
Improves background effect handling during camera changes.
Creates new tracks only when necessary (camera unavailable).
Ensures proper muting behavior based on device settings.
Replaces the old device service with a new implementation using Angular Signals for reactive state management.
This enhances performance by:
- Improving permission requests
- Providing live device detection
- Providing better error handling
The new implementation also integrates with the LiveKit client for track management.
Adds a more robust mechanism to manage virtual background support, including:
- Displaying a warning message when the browser does not support virtual backgrounds.
- Disabling background selection buttons when virtual backgrounds are not supported.
- Optimizing background processor initialization and attachment for different browsers (handling lazy loading for Firefox).
- Centralizing the check for virtual background support in the OpenViduService.
This change ensures a better user experience by clearly indicating when virtual backgrounds are unavailable and preventing users from attempting to use an unsupported feature.
Simplifies the logic for attaching and detaching the background processor in Firefox.
Ensures the processor is stopped when background effects are disabled, optimizing performance.
- Added LayoutDimensionsCache for caching dimension calculations to optimize layout rendering.
- Implemented LayoutRenderer for handling DOM manipulation and rendering of layout elements.
- Created layout-types model to define various layout-related types and constants.
- Developed OpenViduLayout class to orchestrate layout calculations and rendering, maintaining backward compatibility.
- Updated document and layout services to reference new layout model structure.
- Updated @livekit/track-processors from 0.6.1 to 0.7.0 in openvidu-components-angular/package.json
- Updated livekit-client from 2.15.15 to 2.16.0 in openvidu-components-angular/package.json
- Updated livekit-client from ^2.15.0 to ^2.16.0 in openvidu-components-angular/projects/openvidu-components-angular/package.json
- Updated @livekit/track-processors from ^0.6.0 to ^0.7.0 in openvidu-components-angular/projects/openvidu-components-angular/package.json
- Refactored OpenViduService to change roomOptions.e2ee to roomOptions.encryption for E2EE configuration
- Reorganized import statements in OpenViduService for better readability
Ensures consistent identification of participant elements by using the participant identity, facilitating easier manipulation and tracking of elements.
Improves component updates by storing the remote participants value locally.