如何在 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 中更改音频缓冲源的时间?的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有 Web Audio API 的情况下直接从 ArrayBuffer 获取通道数据?
使用 Web Audio API 为声音的开头添加静音 [关闭]