如何在 Web Audio API 中更改音频缓冲源的时间?

Posted

技术标签:

【中文标题】如何在 Web Audio API 中更改音频缓冲源的时间?【英文标题】:How do I change the time of an audio buffer source in the Web Audio API? 【发布时间】:2018-08-14 00:56:36 【问题描述】:

如果我有一个音频元素,我可以使用类似的东西 audioElement.currentTime=5;

但是如何在 Web Audio API 中设置音频缓冲源的时间?有没有类似的:

var source=context.createBufferSource(); source.currentTime=5;

为了澄清,我想在音频缓冲区的音频中播放 5 秒。

【问题讨论】:

你看过这里吗? html audio can't set currentTime @MathiasFalci 感谢您的链接,但他们讨论的是音频元素,而不是音频缓冲区源。 【参考方案1】:

src.start() 采用第二个参数作为偏移量:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/start

src.start(when,offset,duration)

如果我使用src.start(0,5),我将在 5 秒后启动音频缓冲区!

【讨论】:

【参考方案2】:

如果您希望 AudioBufferSourceNode 从时间 5 开始播放,您可以使用 src.start(5)src.start(5 + context.currentTime)。这假设与AudioBufferSourceNode 关联的AudioBuffer 至少有5 秒的音频要播放。否则你什么也听不见。

【讨论】:

src.start(x) 决定了我们将等待多少秒直到播放声音,而不是我们将从什么时间开始播放声音。 developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/… 但是,您让我知道还有第二个参数可以满足我的要求。谢谢! :)

以上是关于如何在 Web Audio API 中更改音频缓冲源的时间?的主要内容,如果未能解决你的问题,请参考以下文章

在 Audio Web API 中下载音频文件时播放

如何在没有 Web Audio API 的情况下直接从 ArrayBuffer 获取通道数据?

使用 Web Audio API 为声音的开头添加静音 [关闭]

在 Web Audio API 中导出音频强度

从 url 中提取音频片段并使用纯 Web Audio API 播放

Web Audio API 音频编辑器将编辑的剪辑保存回 Web 服务器