Проблема в следующем, библиотека возвращает информацию о положении указателя в проигрываемом файле тремя способами (я нашёл 3):
1) BASS_ChannelBytes2Seconds64 - возвращает секунды.
2) BASS_StreamGetLength(handle) - BASS_ChannelGetPosition(handle) - возвращает ?фреймы?
3) BASS_StreamGetFilePosition - возвращает положение указателя в открытом файле.
1) Требует, чтобы период таймера, по которому определяется окончание проигрывания, был больше секунды (для чёткого срабатывания), иначе обрезается конец (~1 сек.) у проигрываемого файла (не у всех файлов, но даже и одного достаточно). Если период больше секунды - возникает пауза между треками.
2) BASS_StreamGetLength(handle) возвращает не полную длинну трека, а длинна минус последний буфер. Аналогично первому - обрезается конец проигрываемого трека.
3) Ещё не пробовал, но думаю грабли и здесь подстерегут.
Вопрос, как определить, что проигрывание трека завершено и избежать вышеперечисленных проблем?
Спасибо.