使用Javascript在智能手机上录制时如何捕获所有频率?

时间:2018-10-31 11:46:52

标签: javascript android google-chrome audio recording

我一直在努力用Java语言录制音频数据。

在桌面上,AudioContext可以正常工作,并以44100 Hz不变的采样率捕获20-20K Hz的所有频率。

但是,当在智能手机(Android上为Chrome)上录制时,甚至认为audioContext将采样率设置为48000 Hz(再次不可更改!),它只能捕获高达6000 Hz的频率。当我在Audacity上绘制其频谱图时,它在6K Hz上是空的。

我在互联网上搜索了很多解决方案,但似乎没有遇到过! 吓死我了javascript如何将采样率设置为48K,但捕获直到6k Hz的频率?

如果您能帮助我并指出正确的方向,将非常感谢你们。

以下是类似的代码,取自https://developers.google.com/web/fundamentals/media/recording-audio/

<script>
  var handleSuccess = function(stream) {
    var context = new AudioContext();
    var source = context.createMediaStreamSource(stream);
    var processor = context.createScriptProcessor(1024, 1, 1);

    source.connect(processor);
    processor.connect(context.destination);

    processor.onaudioprocess = function(e) {
      // Do something with the data, i.e Convert this to WAV
      console.log(e.inputBuffer);
    };
  };

  navigator.mediaDevices.getUserMedia({ audio: true, video: false })
      .then(handleSuccess);
</script>

我无法粘贴我的原始代码,因为它是针对客户的。

我无处可压缩代码。我从后端的音频样本生成了一个wav文件,并将其频谱图绘制在Audacity上。

0 个答案:

没有答案