Witam.
Napisałem w Lazarusie w oparciu o bass.dll prosty odtwarzacz plików wav.
W trakcie odgrywania plików odtwarzacz realizuje bieżące wizualizacje FFT lub waveform.
Wszystko działa tak jak trzeba ale ...
teraz chciałbym dodatkowo po "otwarciu" wav
channel := BASS_StreamCreateFile(False, filename, 0, 0, 0 {$IFDEF UNICODE} or BASS_UNICODE {$ENDIF});
narysować jego kompletny wykres waveform.
Próbuję, w pętli for, pobierać z wav paczki danych korzystając z funkcji
BASS_ChannelSetPosition(channel, pozycja, BASS_POS_BYTE);
BASS_ChannelGetData(channel, @WaveData, 2048);
i niestety w zmiennej WaveData
ciągle mam te same stałe ale "przypadkowe" wartości.
Natomiast jeśli dam
BASS_ChannelPlay(channel, true);
i "ręcznie" pobieram z wav bieżące dane przez
BASS_ChannelGetData(channel, @WaveData, 2048);
to wszystko mi działa ok.
Wydumałem więc, że bass.dll nie udostępnia tych danych jeśli wav nie jest odgrywany.
Czyżby tak było ?
czy też źle się do tego zabrałem.
Proszę o wskazówki i wyrozumiałość,
jestem programistą amatorem :)
dodanie znaczników <code class="delphi"> - fp
s
, więc w sumie połowę wiadomo; Chyba że to literówka i miało byća
zamiasts
, ale to byłby zwykły kwadrat - nic skomplikowanego :P