diff --git a/app/rooms/[roomName]/PageClientImpl.tsx b/app/rooms/[roomName]/PageClientImpl.tsx index c72343d..6eb1c71 100644 --- a/app/rooms/[roomName]/PageClientImpl.tsx +++ b/app/rooms/[roomName]/PageClientImpl.tsx @@ -26,6 +26,7 @@ import { TrackPublishDefaults, VideoCaptureOptions, ParticipantEvent, + VideoQuality, } from 'livekit-client'; import { useRouter } from 'next/navigation'; import { useSetupE2EE } from '@/lib/useSetupE2EE'; @@ -173,9 +174,14 @@ function VideoConferenceComponent(props: { room.on(RoomEvent.Disconnected, handleOnLeave); room.on(RoomEvent.EncryptionError, handleEncryptionError); room.on(RoomEvent.MediaDevicesError, handleError); - room.localParticipant.on(ParticipantEvent.LocalTrackCpuConstrained, (track) => { + room.localParticipant.on(ParticipantEvent.LocalTrackCpuConstrained, async (track) => { console.warn('Local track CPU constrained', track); track.prioritizePerformance(); + room.remoteParticipants.forEach((participant) => { + participant.videoTrackPublications.forEach((publication) => { + publication.setVideoQuality(VideoQuality.LOW); + }); + }); }); if (e2eeSetupComplete) { room diff --git a/lib/MicrophoneSettings.tsx b/lib/MicrophoneSettings.tsx index c71bb4a..250c0f1 100644 --- a/lib/MicrophoneSettings.tsx +++ b/lib/MicrophoneSettings.tsx @@ -11,7 +11,8 @@ export function MicrophoneSettings() { filterOptions: { quality: isLowPowerDevice() ? 'low' : 'medium', onBufferDrop: () => { - console.warn('krisp buffer dropped, either disable or reduce quality'); + console.warn('krisp buffer dropped, disabling noise filter now'); + setNoiseFilterEnabled(false); }, }, }, diff --git a/package.json b/package.json index 07f21d6..322e53e 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "@datadog/browser-logs": "^5.23.3", "@livekit/components-react": "2.9.10", "@livekit/components-styles": "1.1.6", - "@livekit/krisp-noise-filter": "0.3.0", + "@livekit/krisp-noise-filter": "0.3.1", "@livekit/track-processors": "^0.5.4", "livekit-client": "0.0.0-20250623162608", "livekit-server-sdk": "2.13.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0fee034..db901e6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,13 +13,13 @@ importers: version: 5.35.1 '@livekit/components-react': specifier: 2.9.10 - version: 2.9.10(@livekit/krisp-noise-filter@0.3.0(livekit-client@0.0.0-20250623162608(@types/dom-mediacapture-record@1.0.22)))(livekit-client@0.0.0-20250623162608(@types/dom-mediacapture-record@1.0.22))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 2.9.10(@livekit/krisp-noise-filter@0.3.1(livekit-client@0.0.0-20250623162608(@types/dom-mediacapture-record@1.0.22)))(livekit-client@0.0.0-20250623162608(@types/dom-mediacapture-record@1.0.22))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@livekit/components-styles': specifier: 1.1.6 version: 1.1.6 '@livekit/krisp-noise-filter': - specifier: 0.3.0 - version: 0.3.0(livekit-client@0.0.0-20250623162608(@types/dom-mediacapture-record@1.0.22)) + specifier: 0.3.1 + version: 0.3.1(livekit-client@0.0.0-20250623162608(@types/dom-mediacapture-record@1.0.22)) '@livekit/track-processors': specifier: ^0.5.4 version: 0.5.4(livekit-client@0.0.0-20250623162608(@types/dom-mediacapture-record@1.0.22)) @@ -459,8 +459,8 @@ packages: resolution: {integrity: sha512-V6zfuREC2ksW8z6T6WSbEvdLB5ICVikGz1GtLr59UcxHDyAsKDbuDHAyl3bF3xBqPKYmY3GWF3Qk39rnScyOtA==} engines: {node: '>=18'} - '@livekit/krisp-noise-filter@0.3.0': - resolution: {integrity: sha512-yJkq7H3Lpfh0D7zpsuwWWgPYwZ8sknd6DxgP8QegrW8Oq44XyAWU5mPd9oW2mBxOTNDVhppKRE38D4rZqEtcOQ==} + '@livekit/krisp-noise-filter@0.3.1': + resolution: {integrity: sha512-zeJKaQJJxrUe6XHqZuPG26rnzXI8cEtznJmLylui49xP5E2oBEdpS+TKzGl1e3mHBdwGu6/WZjiKW0F9111/aw==} peerDependencies: livekit-client: ^2.0.8 @@ -2593,7 +2593,7 @@ snapshots: rxjs: 7.8.2 tslib: 2.8.1 - '@livekit/components-react@2.9.10(@livekit/krisp-noise-filter@0.3.0(livekit-client@0.0.0-20250623162608(@types/dom-mediacapture-record@1.0.22)))(livekit-client@0.0.0-20250623162608(@types/dom-mediacapture-record@1.0.22))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tslib@2.8.1)': + '@livekit/components-react@2.9.10(@livekit/krisp-noise-filter@0.3.1(livekit-client@0.0.0-20250623162608(@types/dom-mediacapture-record@1.0.22)))(livekit-client@0.0.0-20250623162608(@types/dom-mediacapture-record@1.0.22))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tslib@2.8.1)': dependencies: '@livekit/components-core': 0.12.7(livekit-client@0.0.0-20250623162608(@types/dom-mediacapture-record@1.0.22))(tslib@2.8.1) clsx: 2.1.1 @@ -2603,11 +2603,11 @@ snapshots: tslib: 2.8.1 usehooks-ts: 3.1.1(react@18.3.1) optionalDependencies: - '@livekit/krisp-noise-filter': 0.3.0(livekit-client@0.0.0-20250623162608(@types/dom-mediacapture-record@1.0.22)) + '@livekit/krisp-noise-filter': 0.3.1(livekit-client@0.0.0-20250623162608(@types/dom-mediacapture-record@1.0.22)) '@livekit/components-styles@1.1.6': {} - '@livekit/krisp-noise-filter@0.3.0(livekit-client@0.0.0-20250623162608(@types/dom-mediacapture-record@1.0.22))': + '@livekit/krisp-noise-filter@0.3.1(livekit-client@0.0.0-20250623162608(@types/dom-mediacapture-record@1.0.22))': dependencies: '@livekit/mutex': 1.1.1 livekit-client: 0.0.0-20250623162608(@types/dom-mediacapture-record@1.0.22)