Deprecated 0.20.0
useAudioLevel(params) : void
TheuseAudioLevel hook takes aMediaStreamTrack (for example, a call participant’s audio track). The second parameter, onVolumeChange, is a callback function,
which runs when the track’s volume level changes. With this callback, you can respond to the track’s volume changes in whichever way you want.
Parameters
The MediaStreamTrack to test.
A callback reference to run when the track’s volume level changes.
Example
import {
useAudioLevel,
useAudioTrack,
useLocalSessionId,
} from '@daily-co/daily-react';
import { useCallback, useRef } from 'react';
export const MicVolumeVisualizer = () => {
const localSessionId = useLocalSessionId();
const audioTrack = useAudioTrack(localSessionId);
const volRef = useRef(null);
useAudioLevel(
audioTrack?.persistentTrack,
useCallback((volume) => {
// this volume number will be between 0 and 1
// give it a minimum scale of 0.15 to not completely disappear 👻
volRef.current.style.transform = `scale(${Math.max(0.15, volume)})`;
}, [])
);
// Your audio track's audio volume visualized in a small circle,
// whose size changes depending on the volume level
return (
<div>
<div className="vol" ref={volRef} />
<style jsx>{`
.vol {
border: 1px solid black;
border-radius: 100%;
height: 32px;
transition: transform 0.1s ease;
width: 32px;
}
`}</style>
</div>
);
};
See also