Что вызывает неточность в звуке рабочего стола Safari html audio current? - PullRequest
0 голосов
/ 10 января 2019

Я работаю в проекте, где мне нужно создать точный аудио редактор.

Я заметил, что Safari ведет себя странно при настройке currentTime на аудио. Похоже, что в зависимости от currentTime, где происходит скачок и куда, фактический момент времени может быть выключен даже на 2-3 секунды.

Я сделал скрипку JS, чтобы продемонстрировать проблему .

Соответствующие части кода следующие:

jump.addEventListener('click', function () {
  audio.currentTime = jumpToVal;
});

jump2.addEventListener('click', function () {
  audio.currentTime = Number.parseInt(jumpToVal) + Number.parseInt(jumpBufferVal);
  audio.volume = 0;
  setTimeout(function () {
    audio.volume = 1;
    audio.currentTime = jumpToVal;
  }, jumpDelayVal)
});

Таким образом, в основном в этом примере происходит следующее: если попытаться перейти на 8 секунд в звуке после того, как точка пройдена, звук запускается за несколько секунд до этой точки. Если установить значение currentTime, например, на 8 секунд меньше этой точки и после задержки, переходящей в точку, оно воспроизводится в некоторой степени из правильной позиции.

Я хотел бы подчеркнуть, что, скорее всего, это просто совпадение, поскольку поведение меняется в зависимости от того, где и в какой момент времени установлен currentTime. С этой настройкой проблема яснее всего.

Сравните, например, с Chrome, чтобы услышать разницу.

Особенность заключается в том, что звук возвращает один и тот же currentTime, независимо от конечного результата. Другими словами, звук, кажется, «думает», что он находится в правильном положении, даже когда он явно не в этом.

Мои вопросы: почему Safari настолько неточен с currentTime и есть ли решение этой проблемы?

Safari версия 12.0 (14606.1.36.1.9).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...