typescript - 无法在“BaseAudioContext”上执行“createBuffer”
问题描述
无法在“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
它在定义变量的源代码行失败。我不明白如何在不先创建缓冲区的情况下“提供帧”。
所有解决方案的想法将不胜感激。
解决方案
推荐阅读
- docker - 在 Docker Swarm 上部署 Spark 和 HDFS 不会启用数据本地化
- time - 查找 2 个日期之间的差异并检查是否小于给定值
- java - 运行 Maven 构建时如何访问 JAR 中的文件
- c++ - 未定义的 Reference-ld 返回 1 个退出状态
- c++ - 如何为 lua_State 设置全局 C++ 指针
- python - 基于子列表过滤列表时如何避免硬编码?
- scala - 将 spark 数据帧动态转换为元组数据集(String,_<:Product)
- ios - 是否可以垂直定位自定义 UIBarButtonItem?
- c - 如何将文件中的单词存储在C中的二维数组中
- angular - 另一个(Angular)内部的两个或多个顺序请求