它基本上都在标题中,我如何知道或如何在Web Audio API中访问soundNode的持续时间。我期待source.buffer.size
或source.buffer.duration
之类的内容可用。
我无法想到的唯一选择是读取文件元数据。
答案 0 :(得分:1)
假设您正在加载音频,当您使用context.decodeAudioData对其进行解码时,生成的arrayBuffer具有.duration属性。这与用于创建源节点的arraybuffer相同。
您可以查看SoundJS implementation,但也可以更轻松地按照教程进行操作。
希望有所帮助。
答案 1 :(得分:0)
好消息和坏消息;节点没有长度 - 但我敢打赌,你可以用另一种方式实现你想要的东西。
音频节点是声音处理器或发生器。由节点处理或发出的声音的持续时间可以改变 - 对于计算机它是完全相同的,缺少声音是一个充满零而不是其他值的缓冲区。
因此,如果您需要动态确定声音的持续时间,您可以编写一个节点,该节点在收到的输入音频中定时“静音”。
但是,我怀疑你提到元数据时你正在加载现有声音 - 在这种情况下你应该确实使用他们的元数据,或者通过加载到音频元素并从中请求长度来确定长度。