2017-02-10 1 views
1

У меня есть песня, в которой я играю с веб-аудио, и я планирую два изменения воспроизведения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.

+1

Об этом сообщается https://bugs.chromium.org/p/chromium/issues/detail?id=645776 (так или иначе) и фиксируется в 58 канарейках. Также обратите внимание, что временной параметр относится к часам аудиоконтекста. Кажется, есть новое предложение сделать его относительно currentTime, если значение уже прошло, но в настоящее время никто, кажется, его не реализовал, и вы должны называть 'setValueAtTime (val, audioCtx.currentTime + offset)'. – Kaiido

+0

Спасибо @Kaiido. Похоже, эта проблема исправлена ​​в канареечной канале v58. Хотя ошибка хрома, похоже, немного отличается от той, которую я вижу в том, что она происходит случайно/неопределенно, когда моя ошибка ломает каждое мгновенное время. Решение состоит в том, чтобы дождаться v58, затем ... – JohnW

+0

Да, я думаю, что основная проблема была такой же, в то время как отчет об ошибке не совсем о той же проблеме. Но он работает в 58 лет. – Kaiido

ответ

1

Закрытие петли - это ошибка с хромом v55. Исправлено в v58 (dunno, если фиксировано в любых версиях между ними).

Смежные вопросы