我有网站使用php框架工作codigniter我在使用mattdiamond / Recorderjs记录blob内容类型的音频文件然后我将它上传到服务器但是它花了很多时间上传我想最小化我上传时间。音频文件的最大大小为4mb,上传到服务器需要1分钟到4分钟。
$(document).on("click", "#save:not(.disabled)", function(){
Fr.voice.export(function(blob){
var formData = new FormData();
formData.append('file.wav', blob);
formData.append('question_id',question_id);
formData.append('test_id',test_id);
formData.append('section_id',section_id);
formData.append('sub_section_id',sub_section_id);
$.ajax({
url: "https://www.example.com/pte/upload",
type: 'POST',
data: formData,
contentType: false,
processData: false,
success: function(response) {
if(response.status=="success"){
$('#recording-status').html("Recording save successfully.");
$('#recording-status').addClass("text-success");
$("#nextbtn1").prop('disabled', false);
href = $("#nextbtn").attr('href');
submit_question1(href);
}
else {
$('#recording-status').html("An error occurred");
}
//$("#audio").attr("src", url);
// $("#audio")[0].play();
// alert("Saved In Server. See audio element's src for URL");
}
});
}, "blob");
restore();
}); });
答案 0 :(得分:0)
在创建Recorder对象时,您可以像这样将{numChannels:1}
传递给构造函数:
var recorder = new Recorder(input,{numChannels:1})
我相信您的情况应该是:Fr.voice = new Recorder(input,{numChannels:1})
numChannels
是一个未记录的配置选项。默认值为2。设置为1时,将进行单声道录制,从而使文件大小减半。
我最近在this article中详细介绍了Recorderjs
和numChannels
。