Я экспериментировал с подключением аудио-элемента к веб-аудио-API с помощью createMediaElementSource и заставил его работать, но одна вещь, которую мне нужно сделать, это изменить скорость воспроизведения аудио-тега, и я не мог заставить это работать.
Если вы попытаетесь запустить приведенный ниже код, вы увидите, что он работает, пока вы не раскомментируете строку, в которой мы устанавливаем скорость воспроизведения. Когда эта строка присутствует, звук отключается.
Я знаю, что могу установить скорость воспроизведения в AudioBufferSourceNode, используя source.playbackRate.value, но это не то, что я хотел бы сделать, мне нужно установить скорость воспроизведения для аудиоэлемента, когда он подключен к веб-аудио. api с помощью createMediaElementSource, поэтому у меня нет AudioBufferSourceNode.
Кому-нибудь удалось это сделать?
var _source,
_audio,
_context,
_gainNode;
_context = new webkitAudioContext();
function play(url) {
if (_audio) {
_audio.pause();
}
_audio = new Audio(url);
//_audio.playbackRate = 0.6;
setTimeout(function() {
if (!_gainNode) {
_gainNode = _context.createGainNode();
_gainNode.gain.value = 0.1;
_gainNode.connect(_context.destination);
}
_source = _context.createMediaElementSource(_audio);
_source.connect(_gainNode);
_audio.play();
}, 0);
}
play("http://geo-samples.beatport.com/items/volumes/volume2/items/3000000/200000/40000/9000/400/60/3249465.LOFI.mp3");
setTimeout(function () {
_audio.pause();
}, 4000);