[bass] Pstryki przy dźwięku

0

Zrobiłem program który co pewien czas (na timer) odgrywa pliki wav z listy, uprzednio ładowane do MemoryStream. Chciałem w przyszłości mieć możliwość rozbudowania programu o wybór urządzenia audio, więc zrobiłem na Bassie. W kodzie OnTimer jest dałem m.in.:

    
BASS_SampleFree(Sample);

Sample:=BASS_SampleLoad(True,
                  MemoryStream.Memory,
                  0,MemoryStream.Size,1,0);

Channel:=BASS_SampleGetChannel(Sample, False);

BASS_ChannelSetAttributes(Channel, 0, 100, 0);

BASS_ChannelPlay(Channel,True);

//jest też kontrola błędów, ale wywaliłem by skrócić na forum
 

Chodziło w domu ładnie, potem puściłem to na kompie docelowym troszkę powolnym (Celeron 533 640MB i trochę zaśmiecony i powolny XP). Na początku każdego dźwięku pojawiało się pstryknięcie (dźwięki w plikach oczywiście zaczynały się i kończyły na zerze). Zmieniłem drivery z XP'owskich na kX (karta SB Live! VE). Wynik - przestało pstrykać na początku, zaczęło na końcu każdego dźwięku.

W końcu się zdenerwowałem i dałem zamiast tego całego kodu banalne:

    PlaySound(MemoryStream.Memory, 0,
       SND_MEMORY or SND_NODEFAULT or SND_ASYNC);

I chodzi jak złoto.

Ale wolałbym uzyskać poprawną pracę na Bassie z powodów jak napisałem na początku.

Jakieś porady od doświadczonych bassowców?

0

A próbowałeś robić to może na BASS_StreamCreateFile i BASS_StreamPlay, ogólnie nie na Sample tylko na Channel? Nie wiem, czy to pomoże, nie miałem osobiście takiego problemu z "pstrykaniem", no ale zawsze warto spróbować. Może odpal PilotMP3 na tym swoim kompie (tym, na którym występowały te "pstrykania") i powiedz, czy wszystko jest cacy, czy tak samo się zachowuje.

1 użytkowników online, w tym zalogowanych: 0, gości: 1