Безрежимное воспроизведение последовательных звуков во Flash - PullRequest
0 голосов
/ 10 июня 2009

Я делаю вспышку, которая по сути является очень простым трекером. Мой вопрос о последовательном воспроизведении и, более конкретно, проблемах синхронизации.

Объект SoundChannel удобно предоставляет событие SoundCompleted, но полагаясь на это, вы получаете крошечные промежутки между звуками, что (к сожалению) делает его бесполезным.

Все, что мне удалось выкопать до сих пор, - это учебные пособия, использующие события, запускающиеся каждую миллисекунду, и вручную отслеживающие отметку, с которой начинается следующий звук. Это кажется немного хакерским и излишне расточительным.

Есть ли лучший способ синхронизировать звуки последовательно с воспроизведением без пауз?

Ответы [ 2 ]

0 голосов
/ 16 июня 2009

Это может сработать, но тайм-ауты не зависят от частоты кадров или не совсем так. Как вы говорите, они срабатывают как можно ближе к установленному таймауту, но я обнаружил, что есть некоторые различия в точности в зависимости от частоты кадров.

Но что касается исходной проблемы, я провел некоторое исследование и ответил на него сам .

0 голосов
/ 10 июня 2009

Если вы запросите текущее время звука (или оставшееся время) в миллисекундах, и установите время ожидания для этого периода и начнете следующий звук в обработчике времени ожидания, будет ли это работать? Это не то, что я попробовал и нашел надежным, но обработчики тайм-аута будут вызываться настолько близко к прямому времени, насколько может управлять Flash Player (независимо от частоты кадров и т. Д.). Поэтому, если это не сработает, я не могу себе представить, что еще будет, если только это не будет какой-то вариацией в оценке того, сколько MS свободного хода требуется, и попыткой запустить следующий звук за 5 мс или еще до того, как запланирован текущий конец.

...