【发布时间】:2021-07-03 10:37:04
【问题描述】:
我已经成功创建了一个基于mdn example here 的音频波形可视化器。我现在也想为录制的音频添加可视化。我使用 MediaRecorder 录制音频并将结果保存为 Blob。但是我找不到将我的 AudioContext 连接到 Blob 的方法。
这是到目前为止的相关代码部分:
var audioContext = new (window.AudioContext || window.webkitAudioContext)();
var analyser = audioContext.createAnalyser();
var dataArray = new Uint8Array(analyser.frequencyBinCount);
if (mediaStream instanceof Blob)
// Recorded audio - does not work
var stream = URL.createObjectURL(mediaStream);
else
// Stream from the microphone - works
stream = mediaStream;
var source = audioContext.createMediaStreamSource(stream);
source.connect(analyser);
mediaStream 来自:
navigator.mediaDevices.getUserMedia ({
audio: this.audioConstraints,
video: this.videoConstraints,
})
.then( stream => {
mediaStream = stream;
}
或作为记录数据的结果:
mediaRecorder.addEventListener('dataavailable', event => {
mediaChunks.push(event.data);
});
...
mediaStream = new Blob(mediaChunks, { 'type' : 'video/webm' });
如何将 AudioContext 连接到录制的音频? Blob可以吗?我需要别的东西吗?我错过了什么?
我创建了一个fiddle。相关部分从第 118 行开始。
感谢您的帮助和建议。
编辑: 感谢 Johannes Klauß,我找到了解决方案。 请参阅updated fiddle。
【问题讨论】: