Воспроизведение "записанных" звуков
Я строю довольно простой сэмплер в C#. У меня есть базовая звуковая структура (звуки повышены, звуки остановки в процессе воспроизведения и т. Д.). Но моя проблема возникает, когда я пытаюсь записать и воспроизвести звуки, которые вводит пользователь. При записи я сохраняю звук в словаре с ключом времени начала (класс "время" начинается с 0) вместе с длиной звука. При воспроизведении записанного звука в настоящее время я использую таймер для имитации времени в системе. Я устанавливаю интервал таймера на разницу во времени между текущим звуком и следующими звуками каждый раз, когда я играю звук. Обычно он начинается нормально, но звук обычно полностью не синхронизирован, звуки обрезаются или начинаются слишком поздно, и т. Д., И т. Д., Я предполагаю, что проблема заключается в использовании таймера, но я не имею представления о другом способе выполнения Это. Я использую Bass.Net для звуков.
1 ответ
Какие таймеры вы используете? Большинство таймеров в.NET были бы слишком неточными для этой задачи, вы должны изучить P/Invoking Multimedia Timers (см. Это, например) или создать свой собственный, используя секундомер.