无法在'BaseAudioContext'上执行'createBuffer'

问题描述 投票:0回答:1

无法在'BaseAudioContext'上执行'createBuffer':提供的帧(0)小于或等于最小边界(0)。“

我的项目尝试为Float32Array流块创建音频缓冲区。

音频上下文的初始化

  constructor(loading: LoadingService) {
  ... 
    this.audiocontext = new audiocontext()
  ...
  }

音频缓冲区的创建] >>

private onmusicdownloaded = (response: streamresponse) => {  
    if(response.totalchunks !== 0 &&
      isnullorundefined(this.buffers)) {
      this.buffers = new Array<AudioBuffer>(response.totalchunks) //lets me make correct playback decisions
    }     
    console.log('stream chunk received')   
    this.currentbufferdownloaded++
    let rawbuffer = new Float32Array(response.chunk)
    let newbuffer = this.audiocontext.createBuffer(1, rawbuffer.length, 44100)

    newbuffer.getChannelData(0)
      .set(rawbuffer)
    this.buffers[this.currentbufferdownloaded] = newbuffer
    this.currentbufferdownloaded++

    if(this.musicisreadytoplay() === false) {
      return
    }
    this.playrandomdeserttrack()
  }

它在定义了newbuffer变量的源代码行中失败。我不明白如何在不先创建缓冲区的情况下“提供帧”。

link to full file

所有解决方案的想法将不胜感激。

未能在'BaseAudioContext'上执行'createBuffer':提供的帧数(0)小于或等于最小界限(0)。“我的项目尝试为...创建音频缓冲区]]] >

@@ Kaiido令人尴尬,但这是正确的答案!我需要记住要始终检查自己的假设。

enter image description here

typescript audio-streaming web-audio-api
1个回答
0
投票

@@ Kaiido令人尴尬,但这是正确的答案!我需要记住要始终检查自己的假设。

© www.soinside.com 2019 - 2024. All rights reserved.