Как сделать чтобы TrackBar умел перематывать музыку?
Автор: GoodWind 25.07.2006 0:45
с помощью чегшо проигрываешь музыку?
Автор: GoodWind 25.07.2006 1:08
подозреваю, что с помощью TMediaPlayer. значит так...
при открытии файла нужно сделать:
Код
ScrollBar1.Max:=MediaPlayer1.Length;
т.е. максимальное значение трекбара (в моем случае скроллбара, разницы нет) теперь является концом песни.
ну и в обработчике события OnChange пишем:
Код
if Sender<> Timer1 then begin ScrollBar1.Max:=MediaPlayer1.Length; MediaPlayer1.Play; end;
собственно, все... ну и для красоты засунем таймер с небольшим интервалом - пусть передвигает нам ползунок трекбара...
Код
procedure TForm1.Timer1Timer(Sender: TObject); begin ScrollBar1.Position:=MediaPlayer1.Position; end;
метод, конечно "через Жо", просто первое, что пришло в голову...
да, и не забывай приостанавливать таймер при остановке\паузе песни..
Автор: volvo 25.07.2006 1:39
Цитата(GoodWind @ 24.07.2006 21:08)
ну и для красоты засунем таймер с небольшим интервалом - пусть передвигает нам ползунок трекбара...
Вот ДО этого момента все будет работать, но как только навесишь на таймер действие
TrackBar1.Position := MediaPlayer1.Position;
(Все-таки, Track-Bar был в вопросе ), начнутся глюки... Будет замечаться скакание песни вперед/назад, ибо каждый раз по таймеру теперь вызывается TTrackBar.OnChange...
Стоп... Ясно, вот Sender проверить я не догадался... Sorry... Должно работать...
Автор: GoodWind 25.07.2006 2:01
Цитата
Будет замечаться скакание песни вперед/назад, ибо каждый раз по таймеру теперь вызывается TTrackBar.OnChange...
а как до меня долго доходила причина этого скакания =) надо чаще спать
Автор: Артемий2 25.07.2006 20:57
ScrollBar1.Max:=MediaPlayer1.Length;
Куда этот код вставить? У меня ваш способ не работает! А нельзя выслать более корректный способ?