|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Зависимый индикатор уровня от регулятора громкости
Привет.
Продолжаю делать PlayerMp3 на bass.dll. Нужна помощь. Есть код индикатора уровня (для примера на ProgressBar-е. ProgressBar1.Max:=28000): Код:
procedure TForm1.Timer1Timer(Sender: TObject); var L,R,L1,R1: integer; Level: DWORD; //Переменная для получения данных с канала begin if Bass_ChannelIsActive (stream) <> Bass_Active_Playing then exit; //Если канал не воспроизводится, то выводим отсюда then exit Level:=Bass_ChannelGetLevel (stream); L:=HiWord (Level); R:=LoWord (Level); ProgressBar1.position:=HiWord (Level); ProgressBar2.Position:=LoWord (Level); end; Код:
procedure TForm1.TrackBar1Change(Sender: TObject); begin BASS_ChannelSetAttribute(stream, BASS_ATTRIB_VOL, Trackbar1.position / 20); end; |
#2
|
||||
|
||||
Я запутался: вам нужен индикатор громкости?
в библиотеке BassDll должно быть событие OnLevelChange, т.е. событие возникающее при изменении громкости. Вот его нужно отловить и в нём менять положение в ProgressBar. Если этого события нет, то в TimerOnTimer просто считывайте Level и присваивайте его ProgressBar. (но это как-то фу... ) |
#3
|
||||
|
||||
Возможно так
Код:
... ProgressBar1.position:=HiWord (Level) * Trackbar1.Position; ProgressBar2.Position:=LoWord (Level) * Trackbar1.Position; ... Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
valvl63 (18.10.2013)
|
#4
|
|||
|
|||
Цитата:
Большое спасибо. Да, это то, что мне нужно. Только выходит очень большой max где то: Код:
Progressbar1.max:=300000; |
#5
|
||||
|
||||
Это всё же пример был, тогда разделите на 20 (как у вас в коде)
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#6
|
|||
|
|||
Крутил-вертел и сделал:
Код:
ProgressBar max = 8 ... ProgressBar1.position:=(HiWord (Level) * Trackbar1.Position) div 65535; ... Я думаю сойдет. |