【发布时间】:2021-04-03 07:33:28
【问题描述】:
我一直在尝试在 Chrome 上以 OGG 格式录制音频并将其发送回服务器,但它总是以视频/ogg 格式获取它们。这是我所拥有的:
捕获音频:
let chunks = [];
let recording = null;
let mediaRecorder = new MediaRecorder(stream);
mediaRecorder.start();
mediaRecorder.onstop = function() {
recording = new Blob(chunks, { 'type' : 'audio/ogg; codecs=opus' });
}
mediaRecorder.ondataavailable = function(e){
chunks.push(e.data);
}
发送到服务器:
let data = new FormData();
data.append('audio', recording);
jQuery.ajax(...);
blob 到达后端,但总是在 video/ogg 中!
【问题讨论】:
-
看来您正在使用 jQuery.ajax()。那么你的 jquery 有问题吗?请将该电话的详细信息添加到问题中。
-
另外,您是否考虑过使用本机 javascript,如解释 here
-
作为第三条评论,为什么重要? ogg 只是一个容器,所以无论如何它都是同一个 ogg 文件。
-
@eis 我认为 ajax 代码无关紧要,无论是 jQuery 还是其他东西,它是发送的 FormData 对象,jQuery 不会改变文件的 mime 类型......或者我相信。
-
问题只是发送的 mime 类型还是内容也有问题?你怎么看它是视频/ogg 而不是音频/ogg?
标签: javascript html5-audio web-mediarecorder