Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Delphi. Bass.dll. Как реализовать переключение на следующий трек в плейлисте (ListView), когда заканчивается предыдущий?

Вячеслав Власов Гуру (3387), закрыт 4 года назад
Главным образом, хочу понять, как заставить bass.dll дождаться окончания текущего трека и последующего переключения на следующий трек.
Лучший ответ
East RX Просветленный (24372) 5 лет назад
При запуске трека устанавливай синхронизацию (функция BASS_ChannelSetSync) с типом BASS_SYNC_END и при окончании трека будет вызываться указанная callback-процедура (указатель на которую передаётся в BASS_ChannelSetSync), в ней и делай переключение на следующий трек:

channel := BASS_StreamCreateFile(False, PChar(filename), 0, 0, BASS_STREAM_AUTOFREE);
sync := BASS_ChannelSetSync(channel, BASS_SYNC_END, 0, SyncEndProc, nil);

...

procedure SyncEndProc(handle: HSYNC; channel: DWORD; data: DWORD; user: Pointer); stdcall;
begin
// тут делай переключение
end;
Остальные ответы
Дмитрий Кораблин Просветленный (35575) 5 лет назад
Для начала надо отслеживать время завершения трека, если в документации ничего не написано про это, то можно самому это реализовать :)
Похожие вопросы