Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Bass.dll - определение позиции проигрывания потока.
Форум программистов > Системное программирование > Delphi и Pascal > Delphi - Multimedia, Графика, Игры
kalexi
Такое дело. У меня проигрывается файл. Я сделал бар для того, чтобы можно было менять позицию проигрывания (мотать). Все просто, делается так:

Код
PosBar.max = := BASS_StreamGetLength(result);

procedure TmainFrm.PosBarScroll(Sender: TObject;
  ScrollCode: TScrollCode; var ScrollPos: Integer);
begin
if ScrollCode=scEndScroll then
if not BASS_ChannelSetPosition(result,PosBar.Position) then
PosBar.Position := 0;
end;


Все работает НО мне еще необходимо чтобы этот PosBar менял свою позицию во время проигрывания.
Пытался повесить функцию BASS_ChannelGetPosition на таймер, но она при каждом ее вызове притормаживает воспроизведение файла.

Есть еще какие функции или методы решения этой проблемы?
ISDisk
Код
procedure TForm1.TimerPosTimer(Sender: TObject);
var
p: DWORD;
time: String;
begin
if (BASS_ChannelIsActive(Chan) > 0) then // playing - update info
begin
p := seeking;
  if (seeking = -1) then // not seeking - update pos scroller
  begin
  p := Trunc(BASS_ChannelBytes2Seconds(Chan, BASS_ChannelGetPosition(Chan)));
  PosBar.Position := p;
end;
end;

end;
M@T$
Как отследить резкое увеличение звукового сигнала..........и обратно.......

В Delphi 7
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Русская версия IP.Board © 2001-2008 IPS, Inc.