【发布时间】:2014-05-29 02:05:37
【问题描述】:
目前我有一个网站可以使用 Matt Diamond 的 recorder.js + getUserMedia (Web Audio API) 录制音频。客户端完成录制后,我通过 ajax post 将数据(以 .wav 格式)上传到文件系统。然后我的服务器端 java 将 data.wav 处理成其他格式。这很好用。
但是,我担心 ajax 帖子的性能/带宽问题,并想探索将数据直接流式传输到 java 代码或文件系统的选项。有人对如何将此客户端音频流(使用 getUserMedia 打开)传递给服务器端 Java 有任何建议吗?如果有什么不同,我们使用的是 spring 框架。
谢谢。
编辑:
这是请求的代码:
我将此添加到 recorder.js
this.upload = function () {
var data = new FormData();
data.append('file', blob);
$j.ajax({
url : "/Your_Path/To_PHP/action/UploadAudio/",
type: 'POST',
data: data,
contentType: false,
processData: false,
success: function(data) {
alert("Success");
},
error: function() {
alert("uploadFail");
}
});
}
关于php代码:
if($_GET['action'] == 'UploadAudio') {
if (!file_exists('/audioArchiveDestination/subDirectory/')) {
mkdir('/audioArchiveDestination/subDirectory/', 0777, true);
}
$filePath = "/audioArchiveDestination/subDirectory/";
$filename = $_SESSION['member_id'].'_'.time(); //Can be anything
$fileExtension = "wav";
$uploadSuccess = move_uploaded_file($_FILES['file']['tmp_name'], $filePath.$filename.".wav");
if($uploadSuccess) {
$results = json_encode(array("filename" => $filename));
echo $results;
}
}
【问题讨论】:
-
如何将录制的文件保存在服务器上。你能分享那个代码吗?因为我正在尝试保存但没有成功。
-
检查编辑请求的代码
标签: html web-audio-api getusermedia recorder.js