我通过使用 MediaRecorder 每 500 毫秒录制一个新声音来模拟现场音频。问题是声音开头有咔嗒声或滴答声。我怎样才能删除它?
顺便说一句,如果重要的话,我正在使用 React。
const recorder = useRef();
const liveRecord = (stream: MediaStream) => {
if (recorder.current !== undefined) {
recorder.current.stop();
}
const mimeType = "audio/wav";
recorder.current = new
- MediaRecorder
(stream, { mimeType });
const chunks: Blob[] = [];
recorder.current.ondataavailable = ({ data }) => {
chunks.push(data);
};
recorder.current.onstop = async () => {
// send to server
};
recorder.current.start();
};
setInterval(
() => liveRecord(stream.current as MediaStream),
500
);
停止创建新的 MediaRecorder 实例。只需保留一个,然后让它向您传输数据。您可以通过在调用
timeslice
时设置 .start()
参数来完成此操作。
recorder.start(1_000); // Returns data roughly every 1,000 ms
另请参阅:https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder/start