AudioBufferSourceNode: start() 方法
基线 广泛可用
此功能已经成熟,可以在许多设备和浏览器版本上运行。它自 2021 年 4 月.
报告反馈
语法
start()
方法是 AudioBufferSourceNode
接口的一种方法,用于安排播放缓冲区中包含的音频数据,或立即开始播放。start(when)
start(when, offset)
start(when, offset, duration)
js
when
可选-
声音应开始播放的时间(以秒为单位),与
AudioContext
使用的相同时间坐标系。如果when
小于 (AudioContext.currentTime
),或者为 0,则声音会立即开始播放。**默认值为 0。** offset
可选-
一个偏移量(以秒为单位,与
AudioContext
相同的时间坐标系),表示在音频缓冲区内应开始播放的时间。例如,要从 10 秒音频片段的中间开始播放,offset
应为 5。默认值为 0,表示从音频缓冲区的开头开始播放,而超过音频结尾的偏移量将被静默地限制在允许的最大值。对声音进行偏移的计算使用声音缓冲区的自然采样率,而不是当前播放率,因此即使声音以两倍于正常速度播放,10 秒音频缓冲区的中间点仍然是 5 秒。 duration
可选-
要播放的声音的持续时间(以秒为单位)。如果未指定此参数,则声音将一直播放,直到其自然结束或使用
stop()
方法停止。使用此参数在功能上等同于调用start(when, offset)
,然后调用stop(when+duration)
。
返回值
无 (undefined
).
异常
TypeError
-
如果为三个时间参数之一或全部指定了负值,则会抛出此异常。请不要尝试违反时间物理定律。
InvalidStateError
DOMException
-
如果已调用
start()
,则会抛出此异常。您只能在AudioBufferSourceNode
的生命周期内调用此函数一次。
示例
最简单的示例只是从开头开始播放音频缓冲区 - 在这种情况下,您不需要指定任何参数
start()
方法是 AudioBufferSourceNode
接口的一种方法,用于安排播放缓冲区中包含的音频数据,或立即开始播放。source.start();
以下更复杂的示例将在 1 秒后开始播放音频缓冲区中从第 3 秒开始的 10 秒声音。
start()
方法是 AudioBufferSourceNode
接口的一种方法,用于安排播放缓冲区中包含的音频数据,或立即开始播放。source.start(audioCtx.currentTime + 1, 3, 10);
注意:有关使用 start()
的更完整示例,请查看我们的 AudioContext.decodeAudioData()
示例。您也可以 尝试在线运行该示例,并查看 示例源代码。
规范
规范 |
---|
Web 音频 API # dom-audiobuffersourcenode-start |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。