Javascript 通过HTML5API(RecordJS或其他)将音频录制到AAC

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) {

我需要录制一个音频文件,将其导出(存储到服务器中)为aac格式,获取其链接,并将链接和实际音频(aac)文件一起发送到RESTful WS

我发现这个库可以录制音频(利用HTML5音频API):RecordJS

我设置了它(初始化+开始录制+停止录制)。 现在我应该处理音频以便导出它

插件创建者提供的示例如下:

  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);
    });
  }
提供的示例非常简单。 然而,我不知道怎么做

  • 实际上获取aac音频文件
  • 存储它(该示例显示如何下载,而不是如何在服务器上存储)
  • 获取文件的链接(服务器路径)
  • 很抱歉,我不能提供一个工作小提琴,但我是相当新的,对HTML5API感到困惑

    如果需要,我可以使用另一个库或纯HTML5API。只是需要一些关于如何进行的线索。即使是通用解决方案(即,不仅导出到AAC,还导出到MP3或其他内容),如果这对其他人有帮助,也可以

    提供的示例非常简单。然而,我不知道怎么做

  • 实际上正在获取aac音频文件
  • 你不能。。。至少今天没有。我认为MediaRecorderAPI旨在解决这个问题,但它还没有得到真正的支持,也没有标准化

    有些人曾经为MP3编码构建LAME。您可以尝试对开源AAC编码器执行相同的操作,例如FFmpeg中内置的AAC编码器。退房请注意,这是非常缓慢的、高度实验性的,并且不适合所有用例

  • 存储它(示例显示如何下载,而不是如何在服务器上存储)
  • 使用任何你想发送数据到服务器的东西。如果是我,我会通过二进制网络套接字发送它

  • 获取文件的链接(服务器路径)
  • 这取决于您在服务器端使用它做什么,我们无法为您回答。这是你想要的

    提供的示例非常简单。然而,我不知道怎么做

  • 实际上正在获取aac音频文件
  • 你不能。。。至少今天没有。我认为MediaRecorderAPI旨在解决这个问题,但它还没有得到真正的支持,也没有标准化

    有些人曾经为MP3编码构建LAME。您可以尝试对开源AAC编码器执行相同的操作,例如FFmpeg中内置的AAC编码器。退房请注意,这是非常缓慢的、高度实验性的,并且不适合所有用例

  • 存储它(示例显示如何下载,而不是如何在服务器上存储)
  • 使用任何你想发送数据到服务器的东西。如果是我,我会通过二进制网络套接字发送它

  • 获取文件的链接(服务器路径)
  • 这取决于您在服务器端使用它做什么,我们无法为您回答。这是你想要的

    提供的示例非常简单。然而,我不知道怎么做

  • 实际上正在获取aac音频文件
  • 你不能。。。至少今天没有。我认为MediaRecorderAPI旨在解决这个问题,但它还没有得到真正的支持,也没有标准化

    有些人曾经为MP3编码构建LAME。您可以尝试对开源AAC编码器执行相同的操作,例如FFmpeg中内置的AAC编码器。退房请注意,这是非常缓慢的、高度实验性的,并且不适合所有用例

  • 存储它(示例显示如何下载,而不是如何在服务器上存储)
  • 使用任何你想发送数据到服务器的东西。如果是我,我会通过二进制网络套接字发送它

  • 获取文件的链接(服务器路径)
  • 这取决于您在服务器端使用它做什么,我们无法为您回答。这是你想要的

    提供的示例非常简单。然而,我不知道怎么做

  • 实际上正在获取aac音频文件
  • 你不能。。。至少今天没有。我认为MediaRecorderAPI旨在解决这个问题,但它还没有得到真正的支持,也没有标准化

    有些人曾经为MP3编码构建LAME。您可以尝试对开源AAC编码器执行相同的操作,例如FFmpeg中内置的AAC编码器。退房请注意,这是非常缓慢的、高度实验性的,并且不适合所有用例

  • 存储它(示例显示如何下载,而不是如何在服务器上存储)
  • 使用任何你想发送数据到服务器的东西。如果是我,我会通过二进制网络套接字发送它

  • 获取文件的链接(服务器路径)

  • 这取决于您在服务器端使用它做什么,我们无法为您回答。你想要什么都行。

    我不知道我的解决方案是否能回答你的问题。首先,您必须将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存储到服务器的粗略想法。