3

基本上都在标题中,我怎么知道或者如何访问 Web Audio API 中 soundNode 的持续时间。我期待类似source.buffer.sizesource.buffer.duration可用的东西。

如果无法完成,我能想到的唯一选择是读取文件元数据。

4

2 回答 2

1

假设您正在加载音频,当您使用 context.decodeAudioData 对其进行解码时,生成的 arrayBuffer 具有 .duration 属性。这将与您用于创建源节点的数组缓冲区相同。

您可以查看SoundJS 实现,尽管那里也有更容易遵循的教程。

希望有帮助。

于 2014-01-21T16:24:18.977 回答
0

好消息和坏消息;节点没有长度 - 但我敢打赌你可以通过另一种方式实现你想要的。

音频节点是声音处理器或发生器。一个节点处理或发出的声音的持续时间可以改变 - 对计算机来说都是一样的,缺少声音是一个充满零而不是其他值的缓冲区。

因此,如果您需要动态确定声音的持续时间,您可以编写一个节点,在它接收到的输入音频中定时“静音”。

但是,我从您提到的元数据中怀疑您正在加载现有的声音-在这种情况下,您确实应该使用它们的元数据,或者通过加载到音频元素并从中请求长度来确定长度。

于 2014-01-19T18:30:05.553 回答