在 MDN 文档中,navigator.getUserMedia
被标记为已弃用,navigator.mediaDevices.getUserMedia
建议改为使用。
但是绝对没有有用的文档。
我有一个旧脚本,用于获取音频的 FFT 以绘制光谱仪,如下所示:
我现在想做类似的事情。我想获得音频的 FFT,对其执行一些数学运算,然后播放。
所以,按照新的 API,我想出了这个:
const media = await navigator.mediaDevices.getUserMedia({ audio: true });
const audio_track = media.getAudioTracks()[0];
这显示了AudioStreamTrack
如果我在控制台中登录它:
AudioStreamTrack {
kind: "audio",
id: "{93774f91-7eae-4fe8-8183-d7adee83174b}",
label: "default: Microphone (Realtek High Definition Audio)",
enabled: true,
muted: false,
onmute: null,
onunmute: null,
readyState: "live",
onended: null
}
绝对没有关于这个类的文档。也没有关于从MediaStreamTrack
父类中获取任何声音的文档。
那么如何从MediaStream
API 录制的声音中获取 FFT 样本呢?