通过浏览器

时间:2017-10-11 07:50:37

标签: javascript audio audio-recording

我目前正在通过网络浏览器(.wav格式)处理音频记录,目前我们使用以下代码开始记录,并通过套接字发出数据:

async start () {
this.stream = await navigator.mediaDevices.getUserMedia({
  audio: true,
  video: false
})
this.audioCtx = new AudioContext()
const source = this.audioCtx.createMediaStreamSource(this.stream)
const scriptProcessor = this.audioCtx.createScriptProcessor(0, 1, 1)
source.connect(scriptProcessor)
scriptProcessor.connect(this.audioCtx.destination)
scriptProcessor.onaudioprocess = event => {
  this.emit('record', event.inputBuffer.getChannelData(0))
}
return {
  device: this.stream.getAudioTracks().length && this.stream.getAudioTracks()[0].label || 'Unknown',
  sampleRate: this.audioCtx.sampleRate
}

虽然看起来效果很好,但似乎在发出的数据中插入了随机的无声序列(~8个连续帧,sample)。这似乎与硬件无关,因为无论使用哪种麦克风,我们都会遇到同样的问题。

我想知道这是我们收集数据的方式,也不知道我们如何发送数据导致此问题。 (可能还有如何解决)

谢谢,

0 个答案:

没有答案