Skip to content

Commit 658c9d1

Browse files
Rinzyydavidliu
andauthored
fix: use _peerConnectionId for accurate volume tracking (#228)
* 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. * Update useTrackVolume.ts * comment fixes --------- Co-authored-by: davidliu <[email protected]>
1 parent ac469a4 commit 658c9d1

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

src/hooks/useTrackVolume.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
import { useEffect, useState } from 'react';
88
import { addListener, removeListener } from '../events/EventEmitter';
99
import LiveKitModule from '../LKNativeModule';
10+
import type { MediaStreamTrack } from '@livekit/react-native-webrtc';
1011

1112
/**
1213
* A hook for tracking the volume of an audio track.
@@ -27,10 +28,12 @@ export function useTrackVolume(
2728
trackOrTrackReference?.publication?.track
2829
);
2930

30-
const mediaStreamTrack = track?.mediaStreamTrack;
31+
const mediaStreamTrack = track?.mediaStreamTrack as
32+
| MediaStreamTrack
33+
| undefined;
3134
const hasMediaStreamTrack = mediaStreamTrack != null;
32-
const peerConnectionId = mediaStreamTrack.peerConnectionId ?? -1;
33-
const mediaStreamTrackId = mediaStreamTrack.id;
35+
const peerConnectionId = mediaStreamTrack?._peerConnectionId ?? -1;
36+
const mediaStreamTrackId = mediaStreamTrack?.id;
3437

3538
let [volume, setVolume] = useState(0.0);
3639
useEffect(() => {

0 commit comments

Comments
 (0)