in app/src/home.js [35:78]
function useAudioStream(sample, stopCallback) {
const [audioStream, setAudioStream] = useState(null);
useEffect(() => {
if (sample) {
sample.currentTime = 0;
sample.play().then(() => {
const stream = sample.captureStream();
if (sample.__boost) stream.__boost = sample.__boost;
if (sample.__responses) stream.__responses = sample.__responses;
setAudioStream(stream);
});
function onEnd() {
stopCallback();
}
sample.addEventListener('ended', onEnd);
return () => {
sample.pause();
sample.removeEventListener('ended', onEnd);
};
}
if (sample === 0) {
let micStream;
getMicAudioStream().then((stream) => {
micStream = stream;
setAudioStream(stream);
});
return () => {
if (micStream) micStream.getTracks().forEach((t) => t.stop());
};
}
if (sample === null) {
setAudioStream(null);
}
}, [sample, stopCallback]);
return audioStream;
}