Ошибка, которую вы получаете, генерируется, потому что AudioBufferSourceNode
имеет только выход. Он не принимает никаких входных данных. Это означает, что следующий псевдокод всегда выдаст ошибку.
someAudioNode.connect(anAudioBufferSourceNode);
AudioBufferSourceNode
ожидает, что ему будет выдан AudioBuffer
, который можно рассматривать как его ввод.
One Решением вашей проблемы было бы загрузить файл, который вы используете как src
для AudioElement
, расшифруйте его с помощью decodeAudioData()
, а затем используйте полученный AudioBuffer
с AudioBufferSourceNode
.
Или вы вообще не могли бы использовать API Web Audio и вместо этого использовать свойство playbackRate
AudioElement для регулировки скорости воспроизведения.
Недостаток первого решения - то, что вам нужно загрузить весь файл заранее. В отличие от этого второе решение менее точно. Например, невозможно автоматизировать playbackRate
AudioElement
, тогда как это можно сделать с playbackRate
AudioBufferSourceNode
.