From e2d5ef7922f3e379ac0207e654dec682c0f47f87 Mon Sep 17 00:00:00 2001 From: Rindy Tuy <80165041+Rinzyy@users.noreply.github.com> Date: Fri, 4 Apr 2025 07:49:28 -0500 Subject: [PATCH 1/3] fix: use _peerConnectionId for accurate volume tracking The current implementation uses mediaStreamTrack.peerConnectionId, which is undefined in certain platforms. This PR fixes the issue by accessing the internal _peerConnectionId property. Though private, this is necessary for consistent behavior and avoids a silent failure in the volume processor. Tested and verified to resolve the issue. --- src/hooks/useTrackVolume.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hooks/useTrackVolume.ts b/src/hooks/useTrackVolume.ts index fa8a2782..4625d76b 100644 --- a/src/hooks/useTrackVolume.ts +++ b/src/hooks/useTrackVolume.ts @@ -29,7 +29,7 @@ export function useTrackVolume( const mediaStreamTrack = track?.mediaStreamTrack; const hasMediaStreamTrack = mediaStreamTrack != null; - const peerConnectionId = mediaStreamTrack.peerConnectionId ?? -1; + const peerConnectionId = mediaStreamTrack._peerConnectionId ?? -1; const mediaStreamTrackId = mediaStreamTrack.id; let [volume, setVolume] = useState(0.0); From ce384654dce4ba4f51465aa38ac9da2efcce978d Mon Sep 17 00:00:00 2001 From: Rindy Tuy <80165041+Rinzyy@users.noreply.github.com> Date: Fri, 4 Apr 2025 12:31:22 -0500 Subject: [PATCH 2/3] Update useTrackVolume.ts --- src/hooks/useTrackVolume.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/hooks/useTrackVolume.ts b/src/hooks/useTrackVolume.ts index 4625d76b..60891743 100644 --- a/src/hooks/useTrackVolume.ts +++ b/src/hooks/useTrackVolume.ts @@ -29,6 +29,7 @@ export function useTrackVolume( const mediaStreamTrack = track?.mediaStreamTrack; const hasMediaStreamTrack = mediaStreamTrack != null; + // @ts-ignore - Accessing private property const peerConnectionId = mediaStreamTrack._peerConnectionId ?? -1; const mediaStreamTrackId = mediaStreamTrack.id; From 1ea6d4e22ae33e11aa04d05bd189248ae2b6d363 Mon Sep 17 00:00:00 2001 From: davidliu Date: Tue, 8 Apr 2025 19:40:05 +0900 Subject: [PATCH 3/3] comment fixes --- src/hooks/useTrackVolume.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/hooks/useTrackVolume.ts b/src/hooks/useTrackVolume.ts index 60891743..768f1a3d 100644 --- a/src/hooks/useTrackVolume.ts +++ b/src/hooks/useTrackVolume.ts @@ -7,6 +7,7 @@ import { import { useEffect, useState } from 'react'; import { addListener, removeListener } from '../events/EventEmitter'; import LiveKitModule from '../LKNativeModule'; +import type { MediaStreamTrack } from '@livekit/react-native-webrtc'; /** * A hook for tracking the volume of an audio track. @@ -27,11 +28,12 @@ export function useTrackVolume( trackOrTrackReference?.publication?.track ); - const mediaStreamTrack = track?.mediaStreamTrack; + const mediaStreamTrack = track?.mediaStreamTrack as + | MediaStreamTrack + | undefined; const hasMediaStreamTrack = mediaStreamTrack != null; - // @ts-ignore - Accessing private property - const peerConnectionId = mediaStreamTrack._peerConnectionId ?? -1; - const mediaStreamTrackId = mediaStreamTrack.id; + const peerConnectionId = mediaStreamTrack?._peerConnectionId ?? -1; + const mediaStreamTrackId = mediaStreamTrack?.id; let [volume, setVolume] = useState(0.0); useEffect(() => {