【发布时间】:2018-05-03 14:25:34
【问题描述】:
我从麦克风录制音频,我需要使用 POST 表单将其发送到服务器。
我可以录制并拥有 blob 对象,但我不知道如何发送。
我试图将 blob 转换为 ArrayBuffer 并使用该值设置一个隐藏字段,但我不确定它是否是正确的方法。
这是获取blob,转换为ArrayBuffer并设置为隐藏字段的js代码:
var arrayBuffer;
var fileReader = new FileReader();
fileReader.onload = function(event) {
arrayBuffer = event.target.result;
jQuery('hidden_field').val(arrayBuffer);
};
fileReader.readAsArrayBuffer(blobObject);
之后,我只需使用提交按钮正常发送表单。
在服务器上,如果我对请求对象执行 dd 命令,这就是我得到的:
array:2 [▼
"_token" => "8HcKsoGblW9lEPVY0JYrFDbDAajdb63xdSQC3r5E"
"hidden_field" => "[object ArrayBuffer]"
]
不知道对不对。
如果正确,我该如何处理?
更新
我解决了将隐藏字段中的 blob 作为 base64 字符串发送的问题,使用以下代码:
var fileReader = new FileReader();
fileReader.onload = function(event) {
jQuery('#hidden').val(fileReader.result.substr(fileReader.result.indexOf(',')+1));
};
fileReader.readAsDataURL(s);
【问题讨论】:
标签: javascript laravel audio blob audio-recording