wavencoderjs

FLASH源码 2025-08-10

Wavencoder

wavencoder是用于HTML5中实时音频合成的快速跨浏览器即兴波动编码器。在网络工作者和主窗口中工作(与使用window.btoa编码器相比)。

根据MIT或GPL版本2许可获得双重许可。

例子

要在主窗口播放1秒的噪音,我们可以

 <script type='text/javascript' src='wavencoder.js'></script>
<script type='text/javascript'>

  var samples = [];
  for (var t = 0; t < 22050; ++t) {
    samples[t] = 2 * Math.random() - 1;  // in the interval [-1,1]
  }

  var datauri = WavEncoder.encode(samples);
  var audio = new Audio(datauri);

  document.onload(function(){ audio.play(); });

</script>

优化了davencoder对象,以创建许多相同长度的样本。一个典型的用例是在网络工作者中说出一组音调

 includeScripts('wavencoder.js');

var sampleRateHz = 44100;
var numSamples = 1 * sampleRateHz;                 // 1 sec
var baseFreq = 2 * Math.PI * 27.5 / sampleRateHz;  // A0

var wavEncoder = new WavEncoder(numSamples, {sampleRateHz: sampleRateHz});

var tones = [];
var samples = [];
for (var n = 0; n < 88; ++n) {

  var freq = baseFreq * Math.pow(2, n/12);
  for (var t = 0; t < numSamples; ++t) {
    samples[t] = Math.sin(freq * t);
  }

  tones[n] = wavEncoder.encode(samples);
}

postMessage(tones);
下载源码

通过命令行克隆项目:

git clone https://github.com/fritzo/wavencoderjs.git