如何停止网络音频脚本处理器并清除缓冲区?

2023-12-28

我正在尝试找出一种方法来阻止网络音频脚本处理器节点运行,而无需断开连接。

我最初的想法是将“onaudioprocess”设置为“null”来停止它,但是当我这样做时,我听到了一个非常短的音频播放循环。我的猜测是音频缓冲区没有被清除或其他什么,并且它重复播放相同的缓冲区。

我尝试了一些其他技术,例如首先将缓冲区通道数组值全部设置为 0,然后将“onaudioprocess”设置为“null”,这仍然会产生循环的音频片段而不是静音。

我有一些如下代码(coffeescript)

context = new webkitAudioContext()
scriptProcessor = context.createScriptProcessor()

scriptProcessor.onaudioprocess = (e)->
  outBufferL = e.outputBuffer.getChannelData(0)
  outBufferR = e.outputBuffer.getChannelData(1)
  i = 0
  while i < bufferSize
    outBufferL[i] = randomNoiseFunc()
    outBufferR[i] = randomNoiseFunc()
    i++
  return null
return null

然后当我想阻止它的时候

stopFunc1: ->
  scriptProcessor.onaudioprocess = null

我还尝试将缓冲区通道数组设置为 0,然后将回调设置为 null

stopFunc2: ->
  scriptProcessor.onaudioprocess = (e)->
    outBufferL = e.outputBuffer.getChannelData(0)
    outBufferR = e.outputBuffer.getChannelData(1)
    i = 0
    while i < bufferSize
      outBufferL[i] = 0
      outBufferR[i] = 0
      i++
    scriptProcessor.onaudioprocess = null
    return null
  return null

这两种技术都会产生一段快速循环的音频片段,而不是没有音频。

有没有办法正确地做到这一点,或者我只是想错了?

非常感谢任何帮助。


或许我理解有误...

但如果你取消onaudioprocess,它不会立即停止播放,除非您恰好在当前缓冲区的末尾处点击它。

比方说你的bufferSize是 2048,而你碰巧清零了onaudioprocess中途当前缓冲持续时间为 46ms (2048 / 44100 * 1000)。您仍然会有另外 23 毫秒的音频已经被您的处理过ScriptProcessor before你把它取消了。

最好的办法可能是将增益节点放入路径中并按需将其静音。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何停止网络音频脚本处理器并清除缓冲区? 的相关文章

  • 使用 Node.js 构建网站的最佳实践

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 我想知道如何使用 Node js 从头开始 开发一个网站 我明白我怎么能possibly
  • 在版本 4.4.6 中禁用 ckeditor 上下文菜单

    我在 Rails4 项目中使用 ckeditor 我尝试了 ckeditor gem 和 ckeditor rails gem 来提供 ckeditor 库 这里有多个帖子 人们希望删除 ckeditor 上下文菜单 以便可以显示本机浏览器
  • Number.IsNaN() 比 isNaN() 更糟糕吗

    Soooooo isNaNJavaScript 显然被破坏了 比如 isNaN isNaN isNaN true isNaN false isNaN 0 返回 false 当它们看起来都是 不是数字 在 ECMAScript 6 中 草案包
  • 通过 JavaScript 获取表单名称

    我有一个简单的问题 但我在网上找不到好的解决方案 我有这个 HTML 代码
  • 如何在网站上使用 svg 元素制作块的屏幕截图?

    我在网站上创建了一个构造函数 其本质是将所选元素及其颜色 svg中的元素 添加到访问者选择的背景和背景颜色 png中的背景 中 然后必须单击 保存 结果 按钮并仅执行工作区的屏幕截图 我写了这个脚本 但它需要屏幕截图 但只有背景 并忽略选定
  • HTML W3C 有效元素 - DIV 在 TD 内有效吗?

    我正在和一位同事争论 但找不到证据证明我们俩都是对的 我之前已经看过给定标签的有效元素列表 但只是无法再次找到它 有人能指出我正确的方向吗 我对 XHTML 很好奇 但分歧具体在于 DIV 标签在 HTML 4 01 中的 TD 标签内是否
  • 导航栏下拉菜单(折叠)在 Bootstrap 5 中不起作用

    我在尝试使用以下命令创建响应式菜单或下拉按钮时遇到问题Bootstrap 5一切似乎都正常 导航图标和下拉图标出现 但它不起作用 当我单击nav图标或dropdown按钮 无dropdown menu apears 我想特别提到的是 我还包
  • JavaScript 继承;调用和原型

    要在Javascript中实现继承 通常需要执行以下两个步骤 假设我有一个基类 Animal var Animal function name this name name 我现在想从中派生一个子类 Dog 所以我想说 var Dog fu
  • 如何通过单击链接来更改 div 的内容?

    这是我的网页的 修改后的 jsfiddle 它还有很多 而且定位是正确的 与此相反 http jsfiddle net ry0tec3p 1 http jsfiddle net ry0tec3p 1 a href class btn1 st
  • JavaScript 中的 Promise 有什么意义?

    一个承诺是一个 可能现在可用 或将来可用 或永远不可用的值 来源 MDN 假设我有一个想要处理图片的应用程序 图片已加载 例如在算法在后台使用它之后 或某种其他类型的延迟 现在我想检查一下图片是否可以在future 通过使用承诺 而不是回调
  • 计算三次贝塞尔曲线的弧长、曲线长度。为什么不工作?

    我正在用这个算法计算弧长 三次贝塞尔曲线的长度 function getArcLength path var STEPS 1000 gt precision var t 1 STEPS var aX 0 var aY 0 var bX 0
  • 使用 JavaScript 移动页面上的按钮

    我的按钮可以移动 但奇怪的是 我无法弄清楚偏移是否有问题 我希望我的按钮随着鼠标光标移动 但现在它的移动方式不是我想要的 有时它会消失 另外 创建的新按钮是重叠的 我不知道如何解决这个问题并拥有更好的外观 var coorA var coo
  • 为什么我的交互式图像仅在 Internet Explorer 上出现故障?

    我的问题 我为自己制作了一个图像地图 交互式图像 它在 Chrome safari 和 Firefox 上完美运行 然而 当我在可怕的互联网浏览器上尝试它时 它真的很糟糕 这些小点应该扩展到更大的盒子中 在互联网浏览器上它要么不起作用 要么
  • 改变 JavaScript 中的顶部填充

    以下是我在 css 中设置顶部填充的方法 body font size font size px margin 0 padding 100px 0 20px 0 width 100 important 如何使用最简单的 javascript
  • 使用 Jade 评估自定义 javascript 方法 (CircularJSON)

    我想通过 Jade 将一个对象解析为客户端 JavaScript 通常这会起作用 script var object JSON parse JSON stringify object but my object is circular ht
  • 主页(网格)上的缩略图现在显得模糊。如何纠正?

    我不知道这看起来是否愚蠢 但从早上开始我就无法纠正这个突然出现在我的博客网站上的错误www candidopinions in http www candidopinions in 我有一个网格视图模板 其中博客文章中的特色图像作为调整大小
  • 从 PHP 数组生成 HTML 表

    我不明白这一点 我需要解决看似简单的问题 但这超出了我的逻辑 我需要编写一个函数 table columns input cols 它将输出一个表 示例 input array apple orange monkey potato chee
  • 有没有办法使用 ko.observableArray 作为地图?

    有没有办法使用ko observableArray http knockoutjs com documentation observableArrays html像地图 字典一样 例如 var arr ko observableArray
  • react-native - 图像需要来自 JSON 的本地路径

    你好社区 我正在react native中开发一个测试应用程序 并尝试从本地存储位置获取图像 我实际在做什么 我将图像直接链接源提供给 var 并在渲染函数中调用此方法 react 0 14 8 react native 0 23 1 np
  • 将数组从 jquery ajax 传递到代码后面

    我必须将二维数组传递给在asp net网页代码后面编写的页面方法我有一个变量objList作为二维数组 我使用以下代码来实现此目的 但没有成功 并且未调用页面方法 脚本语言 function BindTable objList ajax u

随机推荐

  • .NET Remoting,将对象传递到方法中

    我正在编写一个 NET 远程处理应用程序 我的 dll 服务器和客户端都工作正常 但是 当我尝试更改方法调用以采用对象参数而不是 int 等简单类型时 它会抱怨此错误 类型 System Runtime Remoting ObjRef 及其
  • 在后台执行子进程

    我有一个 python 脚本 它接受输入 将其格式化为调用服务器上另一个脚本的命令 然后使用子进程执行 import sys subprocess thingy sys argv 1 command usr local bin others
  • 从 Android 调用 JavaScript

    我在从 Android 内部调用基本 JavaScript 函数时遇到问题 当我从以下位置克隆存储库时本教程 https www tanelikorri com tutorial android communication between
  • 将请求的响应保存到文件

    我在用着Requests http docs python requests org en latest api 将 PDF 上传到 API 它被存储为下面的 响应 我正在尝试将其写到 Excel 中 import requests fil
  • CSS 模块和多个布局/主题?

    在我的应用程序中 我有多种主题样式 您可以将它们视为不同的 单独的 CSS 样式文件 我想开始使用 CSS 模块 但我什至不知道如何使用import我的第一个文件 让我们假设以下 简单 目录结构 layouts themeA myCompo
  • char 指针数组和 int 指针数组之间的区别

    这是一道C题 我不明白为什么这段代码有效 char c hello world 但这并没有 int v 1 2 3 4 对我来说 它们是相同的东西 用各自类型初始化的指针数组 但显然它们不是 那么到底有什么区别呢 谢谢 编辑 如果对我的帖子
  • PayPal 初始化时出错

    我使用 ios 版 paypal 移动支付库 iPhone 5 01 iOS 我无法在我的应用程序中初始化 PayPal After PayPal initializeWithAppID APP 80W284485P519543T forE
  • 如何在 src 标签中连接两个字符串?

    这里我想将两个字符串连接在一个 img 标签 这个怎么做 img src partners item AdPath alt id adimg title item AdName width 50px height 50px gt 有什么建议
  • JavaScript 中的嵌套 while 循环

    我正在尝试制作一个带有嵌套的星星网格while loop 它确实适用于for loop for m 1 m lt 5 m for n 1 n lt 10 n document write document write br 但我不知道如何用
  • 在 Actionscript 中绘制三次贝塞尔曲线?

    在 AS3 中以编程方式绘制三次贝塞尔曲线的最佳方法是什么 这Graphics类似乎只支持二次曲线 我希望能够做类似的事情 var startPoint Point new Point 0 0 var endPoint Point new
  • Bookdown:导出到 Word 文档(files2[[format]] 中的错误:尝试在 get1index 中选择少于一个元素)

    我正在使用 bookdown 包和回忆录乳胶类来写我的论文 当我导出到 pdf 或 html 时 一切都相对正常 但我无法将论文导出到 word 文档 我收到以下神秘错误 Error in files2 format attempt to
  • Google:拒绝为不在本地主机上的目标域生成登录提示的权限

    我正在尝试创建 Google 登录并收到错误 拒绝为目标域生成登录提示的权限 在将其标记为重复之前 这是not与提出的问题相同Google 登录网站错误 生成目标域登录提示的权限被拒绝 https stackoverflow com que
  • 从 VS2012 远程调试 Win8 Surface 应用程序

    我正在尝试在 Microsoft Surface RT 平板电脑上的 VS2012 中调试 Windows 应用商店应用程序 桌面开发系统和 Surface 平板电脑位于同一子网 191 168 1 x 我已经在平板电脑上安装了适用于 AR
  • 每次编辑build.gradle文件Android studio都会冻结

    我正在使用 Android studio 3 1 Canary 3 和 gradle 4 3 1 我访问maven org非常慢 但是当我在Android studio中编辑build gradle文件时 它会向 因此 在编辑 build
  • cPickle 可以保存重塑的 numpy 对象引用吗?

    我有一个类定义为 class A def init self a np array 0 1 2 3 4 5 self b self a reshape 2 3 现在 b 实际上是数组 a 的重构引用 如果我们改变 a 的第一个元素 a 0
  • ALTER 表 - 在 MySQL 中添加自动增量

    我在 MySQL 中创建了一个带有 on 列的表itemID 创建表后 现在我想将此列更改为AUTOINCREMENT 如何使用 ALTER 语句来完成此操作 表定义 ALLITEMS itemid int 10 unsigned item
  • 你能用 Jquery 操作字符串中的数字吗? [复制]

    这个问题在这里已经有答案了 我有一些像这样的字符串 p It will vary from 100g to 200g p p 2lbs of meat p p 3 piles of timber p etc etc 我想增加 减少每个字符串
  • 如果我不关心特定编码,如何将 u8 切片打印为文本?

    当打印一个u8Rust 中的数组使用println some u8 slice 这会打印数值 正如它应该的那样 将字符按原样格式化为字符串的最直接方法是什么 不假设任何特定的编码 就像迭代字节字符串并将每个字符写入stdout 没有那么多麻
  • MySQL 二进制日志复制:可以设置为忽略错误吗?

    我正在运行一个主从 MySQL 二进制日志复制系统 唷 对于某些数据 该系统不同步 这意味着主服务器比从服务器保存更多的数据 但是从站经常因为最轻微的 MySQL 错误而停止 这可以禁用吗 可能是复制从站忽略复制错误或某些类似的 my cn
  • 如何停止网络音频脚本处理器并清除缓冲区?

    我正在尝试找出一种方法来阻止网络音频脚本处理器节点运行 而无需断开连接 我最初的想法是将 onaudioprocess 设置为 null 来停止它 但是当我这样做时 我听到了一个非常短的音频播放循环 我的猜测是音频缓冲区没有被清除或其他什么