Javascript 通过HTML5API(RecordJS或其他)将音频录制到AAC
我需要录制一个音频文件,将其导出(存储到服务器中)为aac格式,获取其链接,并将链接和实际音频(aac)文件一起发送到RESTful WS 我发现这个库可以录制音频(利用HTML5音频API):RecordJS 我设置了它(初始化+开始录制+停止录制)。 现在我应该处理音频以便导出它 插件创建者提供的示例如下:Javascript 通过HTML5API(RecordJS或其他)将音频录制到AAC,javascript,html,audio-recording,Javascript,Html,Audio Recording,我需要录制一个音频文件,将其导出(存储到服务器中)为aac格式,获取其链接,并将链接和实际音频(aac)文件一起发送到RESTful WS 我发现这个库可以录制音频(利用HTML5音频API):RecordJS 我设置了它(初始化+开始录制+停止录制)。 现在我应该处理音频以便导出它 插件创建者提供的示例如下: function createDownloadLink() { recorder && recorder.exportWAV(function(blob) {
function createDownloadLink() {
recorder && recorder.exportWAV(function(blob) {
var url = URL.createObjectURL(blob);
var li = document.createElement('li');
var au = document.createElement('audio');
var hf = document.createElement('a');
au.controls = true;
au.src = url;
hf.href = url;
hf.download = new Date().toISOString() + '.wav';
hf.innerHTML = hf.download;
li.appendChild(au);
li.appendChild(hf);
recordingslist.appendChild(li);
});
}
提供的示例非常简单。
然而,我不知道怎么做
这取决于您在服务器端使用它做什么,我们无法为您回答。你想要什么都行。我不知道我的解决方案是否能回答你的问题。首先,您必须将blob格式转换为URL格式才能传输它。之后,使用ajax将其上传到服务器。url将使用PHP脚本在服务器端转换为AAC格式 在javascript中:
function saveToServer()
{
recorder && recorder.exportWAV(function(blob) {
var data = "";
var reader = new FileReader();
reader.readAsDataURL(blob);
reader.onloadend = function(){
data = reader.result;
//your ajax code here
}
});
}
php脚本示例:
$audioData = substr($_POST['data'], strpos($_POST['data'], ",") + 1);
$decodedAudioData = base64_decode($audioData);
$upload_dir = "/this/is/AAC/directory/";
mkdir($upload_dir); //create dir
$aacFile = $upload_dir."myAudio.aac"; // create AAC file in the dir
$fileHandle = fopen($aacFile, 'wb');
$fwrite($fileHandle, $decodedAudioData); // write data into the AAC file
$fclose($fileHandle);
我一周前做了这件事,请不要完全按照我写的上面的代码,我只是给出了如何将AAC格式从RecordJS存储到服务器的粗略想法。我没有检查上面代码的语法
传输录制音频的唯一方法是将其转换为javascript中的URL格式。无法将blob或AAC文件从web浏览器传输到服务器。我不知道我的解决方案是否能回答您的问题。首先,您必须将blob格式转换为URL格式才能传输它。之后,使用ajax将其上传到服务器。url将使用PHP脚本在服务器端转换为AAC格式 在javascript中:
function saveToServer()
{
recorder && recorder.exportWAV(function(blob) {
var data = "";
var reader = new FileReader();
reader.readAsDataURL(blob);
reader.onloadend = function(){
data = reader.result;
//your ajax code here
}
});
}
php脚本示例:
$audioData = substr($_POST['data'], strpos($_POST['data'], ",") + 1);
$decodedAudioData = base64_decode($audioData);
$upload_dir = "/this/is/AAC/directory/";
mkdir($upload_dir); //create dir
$aacFile = $upload_dir."myAudio.aac"; // create AAC file in the dir
$fileHandle = fopen($aacFile, 'wb');
$fwrite($fileHandle, $decodedAudioData); // write data into the AAC file
$fclose($fileHandle);
我一周前做了这件事,请不要完全按照我写的上面的代码,我只是给出了如何将AAC格式从RecordJS存储到服务器的粗略想法。