Skip to content

Commit 9ec546f

Browse files
committed
allow localtrack passing
1 parent f118da6 commit 9ec546f

File tree

2 files changed

+15
-9
lines changed

2 files changed

+15
-9
lines changed

packages/react/src/components/participant/BarVisualizer.tsx

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import * as React from 'react';
22
import { useBarAnimator } from './animators/useBarAnimator';
33
import { useMultibandTrackVolume, type AgentState } from '../../hooks';
4-
import type { TrackReferenceOrPlaceholder } from '@livekit/components-core';
4+
import { isTrackReference, type TrackReferenceOrPlaceholder } from '@livekit/components-core';
55
import { useMaybeTrackRefContext } from '../../context';
66
import { cloneSingleChild, mergeProps } from '../../utils';
7+
import { LocalAudioTrack, RemoteAudioTrack } from 'livekit-client';
78

89
/**
910
* @beta
@@ -23,7 +24,9 @@ export interface BarVisualizerProps extends React.HTMLProps<HTMLDivElement> {
2324
state?: AgentState;
2425
/** Number of bars that show up in the visualizer */
2526
barCount?: number;
27+
/** @deprecated use `track` field instead */
2628
trackRef?: TrackReferenceOrPlaceholder;
29+
track?: TrackReferenceOrPlaceholder | LocalAudioTrack | RemoteAudioTrack;
2730
options?: BarVisualizerOptions;
2831
/** The template component to be used in the visualizer. */
2932
children?: React.ReactNode;
@@ -106,17 +109,18 @@ const getSequencerInterval = (
106109
*/
107110
export const BarVisualizer = /* @__PURE__ */ React.forwardRef<HTMLDivElement, BarVisualizerProps>(
108111
function BarVisualizer(
109-
{ state, options, barCount = 15, trackRef, children, ...props }: BarVisualizerProps,
112+
{ state, options, barCount = 15, trackRef, track, children, ...props }: BarVisualizerProps,
110113
ref,
111114
) {
112115
const elementProps = mergeProps(props, { className: 'lk-audio-bar-visualizer' });
113-
let trackReference = useMaybeTrackRefContext();
116+
let targetTrack: TrackReferenceOrPlaceholder | LocalAudioTrack | RemoteAudioTrack | undefined =
117+
useMaybeTrackRefContext();
114118

115-
if (trackRef) {
116-
trackReference = trackRef;
119+
if (trackRef || track) {
120+
targetTrack = trackRef || track;
117121
}
118122

119-
const volumeBands = useMultibandTrackVolume(trackReference, {
123+
const volumeBands = useMultibandTrackVolume(targetTrack, {
120124
bands: barCount,
121125
loPass: 100,
122126
hiPass: 200,

packages/react/src/prefabs/PreJoin.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,17 +59,19 @@ export function usePreviewTracks(
5959
options: CreateLocalTracksOptions,
6060
onError?: (err: Error) => void,
6161
) {
62-
const [tracks, setTracks] = React.useState<LocalTrack[]>();
62+
const [tracks, setTracks] = React.useState<Array<LocalAudioTrack | LocalVideoTrack>>();
6363

6464
const trackLock = React.useMemo(() => new Mutex(), []);
6565

6666
React.useEffect(() => {
6767
let needsCleanup = false;
68-
let localTracks: Array<LocalTrack> = [];
68+
let localTracks: Array<LocalAudioTrack | LocalVideoTrack> = [];
6969
trackLock.lock().then(async (unlock) => {
7070
try {
7171
if (options.audio || options.video) {
72-
localTracks = await createLocalTracks(options);
72+
localTracks = (await createLocalTracks(options)) as Array<
73+
LocalAudioTrack | LocalVideoTrack
74+
>;
7375

7476
if (needsCleanup) {
7577
localTracks.forEach((tr) => tr.stop());

0 commit comments

Comments
 (0)