У меня есть песня, в которой я играю с веб-аудио, и я планирую два изменения воспроизведенияRate, прежде чем играть в эту песню. Первое изменение playbackRate вступает в силу, но второе никогда не запускается. Это ожидаемое поведение? Что-то мне не хватает, чтобы сделать эту работу?Веб-аудио: аудио 2 последовательного воспроизведения. Значения рейтинга применяются только к первому значению
Базовая логика:
sourceNode = _mySoureNodeGetterFn('blah.mp3');
sourceNode.start(0);
sourceNode.playbackRate.setValueAtTime(.8, 5);
sourceNode.playbackRate.setValueAtTime(1.2, 10);
audioContext.resume();
Второе значение playbackRate, setValueAtTime(1.2, 10)
, запланированный на 10 секунд в песню не вызывает. Первое воспроизведениеRate вызывает штраф.
Я использую Chrome 56.0.2924.87 на macbook.
Об этом сообщается https://bugs.chromium.org/p/chromium/issues/detail?id=645776 (так или иначе) и фиксируется в 58 канарейках. Также обратите внимание, что временной параметр относится к часам аудиоконтекста. Кажется, есть новое предложение сделать его относительно currentTime, если значение уже прошло, но в настоящее время никто, кажется, его не реализовал, и вы должны называть 'setValueAtTime (val, audioCtx.currentTime + offset)'. – Kaiido
Спасибо @Kaiido. Похоже, эта проблема исправлена в канареечной канале v58. Хотя ошибка хрома, похоже, немного отличается от той, которую я вижу в том, что она происходит случайно/неопределенно, когда моя ошибка ломает каждое мгновенное время. Решение состоит в том, чтобы дождаться v58, затем ... – JohnW
Да, я думаю, что основная проблема была такой же, в то время как отчет об ошибке не совсем о той же проблеме. Но он работает в 58 лет. – Kaiido