我一直在努力用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上。