暂停 Web Audio API 声音播放

2024-06-28

如何为我的音频创建暂停功能?我的下面的脚本中已经有一个播放函数。

http://pastebin.com/uRUQsgbh http://pastebin.com/uRUQsgbh

function loadSound(url) {
    var request = new XMLHttpRequest();
    request.open('GET', url, true);
    request.responseType = 'arraybuffer';

    // When loaded decode the data
    request.onload = function() {

        // decode the data
        context.decodeAudioData(request.response, function(buffer) {
            // when the audio is decoded play the sound
            playSound(buffer);
        }, onError);
    }
    request.send();
}

function playSound(buffer) {
    sourceNode.buffer = buffer;
    sourceNode.noteOn(0);
}

但我怎样才能暂停或停止它呢?


简短的回答是“你无法暂停它 - 你可以通过调用 sourceNode.noteOff(0); 来停止它,正如 idbehold 所说的那样”。

您无法暂停它,原因与音频线上没有“暂停”按钮相同 - 因为数据不断通过它运行。您可以实现一个可以暂停的记录器节点,但在某些时候,如果您不取消暂停,它将缓冲大量数据。

实现这种情况的通常方法是跟踪您在播放中的位置(例如,通过记住您何时开始),然后当您想要暂停时,您会记住该偏移量,调用 noteOff(0),然后当您想要暂停时,调用 noteOff(0)重新开始播放创建一个指向同一缓冲区的新节点,并使用偏移量调用 noteOnGrain。

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

暂停 Web Audio API 声音播放 的相关文章

随机推荐

  • 使用 cmd 和 R 配置 databricks

    我正在尝试使用 databricks cli 并调用 databricks 配置 这就是我从 cmd 执行此操作的方法 somepath gt databricks configure token Databricks Host shoul
  • 核心数据:是否可以在分组中使用自定义函数

    在 Objective C 中制作 NSFetchRequest 时 是否可以按组使用自定义函数 strftime sql语句在sqlite中完全有效 select date count from note group by strftim
  • 捕获 javax.net.debug 到文件

    我需要将创建的 javax net debug all 输出保存到文件中 我正在使用 log4j 并尝试创建一个日志代理 如下面的代码示例所示 但是 它没有获取信息 我不确定 javax net debug 被打印到哪里 我尝试以这种方式捕
  • docker-compose pull 结果为 x509:证书由未知机构签名

    尝试从 dockerhub 提取 elastcisearch 图像时遇到以下错误 docker compose pull Pulling elasticsearch elasticsearch 2 2 0 Pulling repositor
  • 如何正确解决“弱接收器在 ARC 模式下可能会意外地为空”的问题

    我在 xcode 中打开了一个新标志 并收到警告 弱接收器在 ARC 模式下可能不可预测地为空 这让我很困惑 因为它当然可能为零 我一周前问过这个问题 但没有收到任何答复 但格雷格 帕克在邮件列表上回答了它 所以我重新发布答案 我们添加此警
  • 我删除了 Xcode 中的本地化,然后无法添加任何本地化

    我错误地从项目信息中删除了项目的本地化信息 故事板和相关语言都被删除 我从以前的文件中取回了故事板 但是当我想添加新的本地化时 会弹出一个窗口并要求我 选择文件和参考语言来创建英语本地化 并且根本没有资源文件 如何添加回本地化内容 添加回本
  • 在 Excel VBA 中,如何保存/恢复用户定义的过滤器?

    如何使用 VBA 保存并重新应用当前过滤器 在 Excel 2007 VBA 中 我试图 保存用户在当前工作表上拥有的任何过滤器 清除过滤器 做东西 重新应用保存的过滤器 看一下捕获自动筛选状态 http www mrexcel com f
  • wikidata 获取带有项目标签和值的所有属性

    我的问题是如何从 wikidata 最好是通过 SPARQL 提取在网页上呈现的所有属性及其各自的标签 以Google https www wikidata org wiki Q95维基数据上的条目 对于属性 P414 证券交易所 或 P1
  • 将 VB 转换为 C# - My.Application.Info.DirectoryPath

    以下 VB VB NET VisualBasic 语句的最佳 C csharp 等效项是什么 My Application Info DirectoryPath My Computer Clipboard My Computer Audio
  • 使用图像映射生成器的一个好的替代方案是什么? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有一张大图像 我想让图像的某些部分可单击 我还想指定可点击区域的形状 方形 圆形 自定义 在不依赖 Javascript 的情况下 如何
  • Android 上原始文件夹和 SD 卡之间的 MediaPlayer 问题

    我正在制作一个用于使用搜索栏播放歌曲的应用程序 如果我从原始文件夹播放 它可以工作 但如果我从 SD 卡播放歌曲 它会显示空指针异常 private MediaPlayer mediaPlayer mediaPlayer MediaPlay
  • 为什么要为 RESTful API 创建单独的应用程序?

    Yii 2 的指南中说 虽然不是必需的 但建议您开发 RESTful API 作为一个单独的应用程序 与您的 Web 前端不同 后端更方便维护 Source RESTful Web 服务 快速入门 http www yiiframework
  • 执行源代码时忽略导入错误

    我有一个应用程序 它读取 python 中的测试脚本并将其通过网络发送以在远程 python 实例上执行 由于控制程序不需要运行这些脚本 我不想将测试脚本使用的所有模块安装在控制器的 python 环境中 然而 控制器确实需要来自测试脚本的
  • C# 中带有复选框的 TreeView

    我在 C 中有一个带有复选框的树视图 我希望当用户检查一个节点时 自动检查以下级别上的所有节点 有谁知道如何做到这一点 而无需在每次用户检查某个节点时在所有树上运行递归功能 Thanks 该函数返回树视图 public TreeView G
  • SQL 用逗号替换点

    我有以下代码 SELECT cast Listenpreis 1 19 as decimal 29 2 as Listenpreis FROM SL M03KNE dbo ARKALK 我得到这个值 5 59 我尝试将点替换为 komma
  • Qt QPushButton 样式表悬停

    我有以下按钮样式表 QPushButton hover background qlineargradient x1 0 y1 0 x2 0 y2 1 stop 0 0 ffd9aa stop 0 5 ffbb6e stop 0 55 fea
  • 在 PHP 中你使用复数还是单数来命名你的数组? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 当我命名数组类型变量时 我经常遇到一个困境 我使用复数还是单数命名我的数组 例如 假设我有一个名称数组 在 PHP 中我会说 names arr
  • Kubernetes 在 AWS-EBS 上创建 PersistentVolumeClaim 失败

    我使用以下命令设置了一个包含四个 EC2 实例的 Kubernetes 集群kubeadm Kubernetes 集群工作正常 但当我尝试创建PersistentVolumeClaim 首先我创建了一个StorageClass使用以下 YA
  • WPF 数据触发器和故事板

    当视图模型 演示模型繁忙时 我试图触发进度动画 我有一个 IsBusy 属性 并将 ViewModel 设置为 UserControl 的 DataContext 当 IsBusy 属性为 true 时 触发 progressAnimati
  • 暂停 Web Audio API 声音播放

    如何为我的音频创建暂停功能 我的下面的脚本中已经有一个播放函数 http pastebin com uRUQsgbh http pastebin com uRUQsgbh function loadSound url var request