【发布时间】:2018-11-05 09:41:44
【问题描述】:
我遇到了来自new Blob 构造函数的非常奇怪的行为。我有一个由 MediaRecorder 返回的 Blob 数组:
现在,我似乎无法从我的代码中对这个 blob 执行任何操作。在我的代码中运行 new Blob(audioChunks) 会导致输出一个空数组,但在控制台中运行相同的命令会正确创建一个新的 Blob!这是完整的方法:
navigator.mediaDevices.getUserMedia({ audio: true }).then(stream => {
const mediaRecorder = new MediaRecorder(stream);
mediaRecorder.start();
const audioChunks = [];
mediaRecorder.addEventListener("dataavailable", event => {
audioChunks.push(event.data);
});
sleep(1000).then(r => {
mediaRecorder.stop();
console.log(audioChunks) // Show the audioChunks
console.log(new Blob(audioChunks)) // Show the failed blob
let audio = new File(new Blob(audioChunks), `${name}.webm`, {
type: "audio/webm;codecs=opus"
});
global.addTrack("filename", audio, id);
console.log(audioChunks)
});
});
当我点击触发它的按钮时,我得到以下控制台输出:
这是作为 Vue.js 中的一种方法构建的,但不确定这是否真的有所作为。
【问题讨论】:
标签: javascript vue.js