Беспрерывное воспроизведение последовательных звуков во Flash
-
13-09-2019 - |
Вопрос
Я делаю флеш, который по сути представляет собой очень простой трекер.Мой вопрос касается последовательного воспроизведения и, в частности, проблем с синхронизацией.
Объект SoundChannel удобно предоставляет событие SoundCompleted, но использование этого приводит к крошечным промежуткам между звуками, что (к сожалению) делает его бесполезным.
Все, что мне удалось найти на данный момент, — это учебные пособия, в которых используются события, запускаемые каждую миллисекунду, и вручную отслеживается момент начала следующего звука.Это кажется немного хакерским и излишне расточительным.
Есть ли лучший способ последовательно синхронизировать звуки при воспроизведении без пауз?
Решение 2
Это могло бы сработать, но тайм-ауты не зависят от частоты кадров или, во всяком случае, не совсем.Как вы говорите, они срабатывают как можно ближе к установленному тайм-ауту, но я обнаружил, что точность может меняться в зависимости от частоты кадров.
Но что касается исходной проблемы, я провел небольшое исследование и ответил на это сам.
Другие советы
Если вы запросите время текущего звука (или оставшееся время) в миллисекундах и установить тайм-аут за этот период и начать следующий звук в обработчике тайм-аута, это сработает?Я не пробовал и не нашел надежного, но обработчики тайм-аута будут вызываться настолько близко к прямому времени, насколько это возможно для Flash Player (независимо от частоты кадров и т. д.).Так что, если это не сработает, я не могу себе представить, что еще могло бы быть, если бы это не был какой-то вариант оценки необходимого количества мс свободы действий и попытка запустить следующий звук за 5 мс или что-то еще до того, как запланирован текущий. конец.