Установка параметра PlayPlayRate для аудиоэлемента, подключенного к веб-аудио API

Я экспериментировал с подключением аудио-элемента к веб-аудио-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);
6
задан St Kiss 20 April 2012 в 03:15
поделиться