使用HTML5 Web Audio Api录音

时间:2012-10-22 01:15:10

标签: web-audio

有人知道Web Audio API是否能够保存使用WebAudioContext播放的音频?

6 个答案:

答案 0 :(得分:15)

我实际上写了一个名为RecorderJS的小工具,可能有所帮助。

答案 1 :(得分:0)

Chrome中至少有一个startRendering功能(尚未检查Safari)。我认为它正在进行一些返工,因此不包含在规范中,但可能会在稍后阶段(或不是)添加。如果您想查看当前的实现,请查看Is there a way to use the Web Audio API to sample audio faster than real-time?

上的答案

答案 2 :(得分:0)

录制API http://www.w3.org/TR/mediastream-recording/有一个W3C规范,但截至目前,它仅在Firefox中实现。

客户端只有ScriptProcessorNode hack(这是Record.js所基于的)。

或者,对于某些用例,使用WebRTC将音频流式传输到服务器并使用Libjingle写入服务器端记录器可能是有意义的。

答案 3 :(得分:0)

这个库工作正常,只有网络音频api(意思是没有用户): https://github.com/higuma/web-audio-recorder-js

但我们现在可以公平地使用它: http://caniuse.com/#feat=audio-api

无论如何你说你的声音已经存在于音频文本中,所以我认为你正在寻找如何使用AudioDestinationNode,这是web音频api的最后一个节点。只要您可以通过常规的html音频播放器播放音频,您就可以在右键单击获得录音功能,就像playDataUri一样。您需要添加属性" controls"对于播放器,或者您可以使用下载属性创建特殊链接。 我对Mdn脚本进行了一些小的改进,将数据发送给玩家,它应该给你一个好主意:

    var audioCtx = new AudioContext();
    var source = audioCtx.createMediaElementSource(myMediaElement);
        myMediaElement = document.createElement("audio");
        myMediaElement.setAttribute("autoplay", true);
        myMediaElement.setAttribute("src", uri);
        myMediaElement.setAttribute("controls", "controls");
        document.getElementById('player').appendChild(myMediaElement);
    source.connect(audioCtx.destination);
  

AudioDestinationNode接口表示最终目的地   在给定的上下文中的音频图 - 通常是你的发言者   设备。它也可以是记录"的节点。音频数据何时   与OfflineAudioContext一起使用。

https://developer.mozilla.org/en-US/docs/Web/API/AudioDestinationNode

答案 4 :(得分:0)

现在可以在最新的浏览器中使用,它名为media recorder,您可以找到更多information here

答案 5 :(得分:0)

最简单的方法是将流创建为

 var dest = audioCtx.createMediaStreamDestination();
 var options = {
 audioBitsPerSecond : 320000,
 sampleSize: 16,
 channelCount: 2,
 mimeType : 'audio/ogg'
     }
  var mediaRecorder = new       MediaRecorder(dest.stream, options);
  var chunks = [];
var isrecording = "Not Recording";

function rec(){


mediaRecorder.start();// start record
dataavailable = true;
isrecording = mediaRecorder.state;
}

您可以查看我的录音机的示例 应用在这里。虽然它也是全频段多频段压缩器和5频段段落。 哦,如果您查看我的链接。最重要的是ondataavilable方法。并且另存为blob也有点领先。 如果有人想帮助我,请给我发送电子邮件给我。谢谢 目前,它仅在Firefox中有效。 MultiBand Compressor