2010-03-07 2 views
0

Я создал простой музыкальный плеер в Delphi, который воспроизводит один трек за другим.Delphi: кроссфейдерные треки в музыкальном проигрывателе

Теперь в плеере должно быть какое-то «псевдо-кроссфейдинг». Это означает, что трек должен исчезнуть на своем конце, а новый трек (который начинается тогда) должен исчезнуть.

Таким образом, я хочу избежать этих неэстетичных изменений дорожки с резкими перекрестками.

Как я мог реализовать такую ​​технологию затухания в Delphi?

Должен ли я change the wave volume в последние секунды первого трека и в первые секунды следующего трека?

ответ

4

Я сделал много мультимедийных работ, используя отличный BASS libraries. Для них есть обертки Delphi.

BASS использует концепции каналов, и вы можете смешивать несколько каналов в целевом канале.
На каждом канале вы можете установить такие параметры, как громкость.
Есть даже каналы эффектов, где вы можете, например, влиять на скорость воспроизведения.

Очень рекомендуется, если вы хотите делать более продвинутые вещи, чем просто воспроизведение.

BASS поддерживает DirectX Audio, а также с низким уровнем latencey ASIO аудио (который используется DJ программного обеспечения, как Traktor)

--jeroen

1

Нет, то, что у вас есть, похоже, что он изменяет громкость Wave Out системы, а беспорядок с настройками пользователя - очень плохая идея. Однако у вас есть правильная общая концепция. Вы хотите изменить волновой объем вывода вашей программы, затухать до нуля и затем начать новый с нуля и постепенно исчезать.

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

  • Нет связанных вопросов^_^