Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save WoolDoughnut310/7d8438ad5a03db6b1feed61cfd9b9836 to your computer and use it in GitHub Desktop.
Save WoolDoughnut310/7d8438ad5a03db6b1feed61cfd9b9836 to your computer and use it in GitHub Desktop.
// src/hooks/useAudioStreamer.js
import { AudioStreamer } from "jnaudiostream";
import { useEffect, useRef } from "react";
const useAudioStreamer = (socket) => {
const streamerRef = useRef(new AudioStreamer());
useEffect(() => {
const streamer = streamerRef.current;
socket.on("bufferHeader", (packet) => {
if (streamer.mediaBuffer) {
return;
}
streamer.setBufferHeader(packet);
streamer.playStream();
});
socket.on("stream", (packet) => {
if (!streamer.mediaBuffer) {
return;
}
streamer.receiveBuffer(packet);
});
return () => {
socket.off("bufferHeader");
socket.off("stream");
};
});
};
export default useAudioStreamer;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment