Record Sounds from AudioContext (Web Audio API)

2019-04-08 08:58发布

问题:

Is there a way to record the audio data that's being sent to webkitAudioContext.destination?

The data that the nodes are sending there is being played by the browser, so there should be some way to store that data into a (.wav) file.

回答1:

Currently, there's not a native way to do that, but as Max said in the comment above, Recorderjs does essentially this (it doesn't chain onto the destination, but is a ScriptProcessorNode you can connect other nodes to, and have its input recorded. I built on Recorderjs to do a simple audio file recorder - https://github.com/cwilso/AudioRecorder.



回答2:

Sine to opus file: https://developer.mozilla.org/de/docs/Web/API/AudioContext/createMediaStreamDestination

In the following simple example, we create a MediaStreamAudioDestinationNode, an OscillatorNode and a MediaRecorder (the example will therefore only work in Firefox at this time.) The MediaRecorder is set up to record information from the MediaStreamDestinationNode.

Chrome supports it, too: https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder