我知道在几个浏览器中不支持getUserMedia(),因此我必须使用或多或少的基于闪存的录音机。通过POST将捕获的音频上传到服务器非常重要,即使我可以访问客户端捕获的音频也非常棒。所以你们知道一个libary / plugin / extension这样做吗?
我发现了一些脚本也是如此:
https://github.com/mattdiamond/Recorderjs
https://github.com/jwagener/recorder.js/
但上传无效。我不知道如何继续。
答案 0 :(得分:4)
您可以将录制的数据保存为blob,然后使用FileReader通过POST使用AJAX上传数据。
类似的东西:
function uploadAudio(mp3Data){
var reader = new FileReader();
reader.onload = function(event){
var fd = new FormData();
var mp3Name = encodeURIComponent('audio_recording_' + new Date().getTime() + '.mp3');
console.log("mp3name = " + mp3Name);
fd.append('fname', mp3Name);
fd.append('data', event.target.result);
$.ajax({
type: 'POST',
url: 'upload.php',
data: fd,
processData: false,
contentType: false
}).done(function(data) {
//console.log(data);
log.innerHTML += "\n" + data;
});
};
reader.readAsDataURL(mp3Data);
}
此代码直接取自此处提供的gitHub项目Recordmp3js: https://github.com/nusofthq/Recordmp3js
它使用HTML5和JS记录音频并保存MP3格式,然后在网络服务器上传数据。
它仅适用于Chrome和Firefox。