useRemoteAudio
The useRemoteAudio hook exposes primitives to interact with audio streams coming from other peers in the room.
| Name | Description | Return Type |
|---|---|---|
| stream | Remote peer's audio stream. Null if not enabled yet. | MediaStream | null |
| track | Remote peer's audio stream track. Null if not enabled yet. | MediaStreamTrack | null |
| state | State of the remote peer's audio stream. | "playable" | "unavailable" | "stopped" | "paused" | "available" |
| isAudioOn | State of the remote peer's audio stream. | boolean |
Example Usage
import { useRemoteAudio } from "@huddle01/react/hooks";
import { useEffect, useRef } from 'react';
const {
state,
track,
stream,
isAudioOn
} = useRemoteAudio({
peerId: "remote-peer-id",
onPlayable(data:{
stream:Mediastream,
track:Mediatrack,
label:"audio"
}) {},
onClose(reason:{
code: number;
tag: string;
message: string;
}) {},
});
const audioRef = useRef<HTMLAudioElement>(null);
useEffect(() => {
if (audio.current && stream) {
audio.current.srcObject = stream;
}
}, [stream]);
return (
<audio ref={audioRef} autoplay>
)Props
The useRemoteAudio hook accepts an object with the following fields as props.
peerId
Required
| Description | Type |
|---|---|
| The peerId of the peer whose audio stream you want to consume. | string |
Example Usage
const remoteAudio = useRemoteAudio({ peerId: "remote-peer-id" });onPlayable
OptionalAdvanced
| Description | Return Type |
|---|---|
| This function will be called when the other peer has enabled their audio stream and it can now be played on your end. | void |
| Parameter Name | Type | Description | Required |
|---|---|---|---|
| data | {track: MediaStreamTrack; stream: MediaStream; label: 'audio';} | The data object containing the audio stream and audio stream track that can be played. | Yes |
Example Usage
const remoteAudio = useRemoteAudio({ peerId: "remote-peer-id", onPlayable: (data) => {
console.log("Ready to play remote peer's audio stream!");
// your code here
}});onClose
OptionalAdvanced
| Description | Return Type |
|---|---|
| This function will be called when the other peer disabled their microphone's audio stream. | void |
Example Usage
const remoteAudio = useRemoteAudio({ peerId: "remote-peer-id", onClose: (reason) => {
console.log("Remote audio stream has been closed!");
// your code here
}});