Trackbar и Mediaplayer

  • Автор темы Dock1100
  • Дата начала
D

Dock1100

Питаюсь писать медиапроигрователь столкнулса с проблемой связаной с TrackBar.
Нету перемотки.
Код:
procedure TForm4.TrackBar1Change(Sender: TObject);
begin
trackbar1.Position:=mediaplayer1.Position;
if image1.Tag=1 then mediaplayer1.play;
end;

image1.Tag=1 //нажата кнопка проигрования, если Tag=0 то не нажата

для обновления позиции ползунка на TrackBar:
Код:
procedure TForm4.Timer1Timer(Sender: TObject);
begin
trackbar1.Position:=mediaplayer1.Position;//Interval=500;
end;
 
V

vital

Смотрим внимательно на этот код
Код:
procedure TForm4.TrackBar1Change(Sender: TObject);
begin
trackbar1.Position:=mediaplayer1.Position;
if image1.Tag=1 then mediaplayer1.play;
end;
А теперь на этот
Код:
procedure TForm4.TrackBar1Change(Sender: TObject);
begin
mediaplayer1.Position:=trackbar1.Position;
if image1.Tag=1 then mediaplayer1.play;
end;
Ищем отличие..
 
D

Dock1100

Попробовал, но видео и звук подтормаживают.
Может что не так написал

Вот весь код:
Код:
procedure TForm4.Image1MouseUp(Sender: TObject; Button: TMouseButton;//кнопка play,pause
Shift: TShiftState; X, Y: Integer);
begin
if image1.Tag=0 then begin 
mediaplayer1.play;
image1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'buttons\'+'pause.bmp');
image1.tag:=1;
timer1.enabled:=true;
end else begin
mediaplayer1.pause;
image1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'buttons\'+'play.bmp');
image1.tag:=0;
timer1.enabled:=false;
end;
end;

procedure TForm4.Image2Click(Sender: TObject); //кнопка stop
begin
mediaplayer1.Stop;
mediaplayer1.Position:=0;
image1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'buttons\'+'play.bmp');
image1.tag:=0;
timer1.enabled:=false;
end;

procedure TForm4.Image5Click(Sender: TObject); //кнопка открытия медиа файла
begin
if opendialog1.Execute then begin
mediaplayer1.FileName:=opendialog1.FileName;
mediaplayer1.open;
MediaPlayer1.DisplayRect := Panel1.ClientRect;
mediaplayer1.play;
image1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'buttons\'+'pause.bmp');
image1.tag:=1;
TrackBar1.Max:=MediaPlayer1.Length;
timer1.enabled:=true;
end;
end;


procedure TForm4.Timer1Timer(Sender: TObject); 
begin
trackbar1.Position:=mediaplayer1.Position;
end;

procedure TForm4.TrackBar1Change(Sender: TObject);
begin
mediaplayer1.Position:=trackbar1.Position;
if image1.Tag=1 then mediaplayer1.play;
end;
 

Вложения

  • Mediaplayer.zip
    242 КБ · Просмотры: 179
V

vital

Ты про то, что оно заикается при проигрывании? А при чем тут перемотка?
Код:
procedure TForm4.Timer1Timer(Sender: TObject); 
begin
trackbar1.Position:=mediaplayer1.Position;
end;
procedure Form4.TrackBar1Change(Sender: TObject);
begin
if ABS(mediaplayer1.Position - TrackBar1.Position) > 1000 then
begin
If TrackBar1.Position<>mediaplayer1.Position then mediaplayer1.Position:=TrackBar1.Position;
mediaplayer1.Play;
end;
Попробуй что-нибудь в таком духе..
 
D

Dock1100

А зачем вот ето:
Код:
if ABS(mediaplayer1.Position - TrackBar1.Position) > 1000 then
begin

У меня вот ето:
Код:
procedure TForm4.TrackBar1Change(Sender: TObject);
begin
if mediaplayer1.Position<>trackbar1.Position then mediaplayer1.Position:=trackbar1.Position;
if image1.Tag=1 then mediaplayer1.play;
end;
работает без глюков.

В самом первом случяе нельзя было перематывать(Перетягиваеш ползунок на TrackBar1 а видео все продолжает показивать с того места где и было)
 
V

vital

if ABS(mediaplayer1.Position - TrackBar1.Position) > 1000 then
Это просто проверяет - кто сделал перемотку - юзер или таймер..
 
G

Guest

Dock1100 а кнопочки то из Поги МР начальной версии! :rolleyes:
Ну да ладно!

Я вообщем то хотел сказать что не юзабельно таскать трекбар, чтоб перематывать трек! сделайте что б принажатии в любое место трэкбара, Thumb перемещался в то место!(извините как то коряво пояснил) Ну я думаю вы поймёте!
 
G

Guest

Ничють, в вашем этого сильно не достает..
Но можно же сделать, что бы перематывался и так и так!

p.s. я то использую gauge!
А на видео фраме благополучно реализован трэкбар!
 
D

Dock1100

Никто не знает как можно "разукрасить" trackbar?
 
G

Guest

Три варианта:
рисовать самому на канве!
При помощи трёх имажэ(один-непосредственно полоса, второй thumb, третий Тоже Themb для определении позиции!
Либо писать самому компонент!))
 
D

Dock1100

рисовать самому на канве!
Наскоко я искал, то канвы у трекбара нет

При помощи трёх имажэ(один-непосредственно полоса, второй thumb, третий Тоже Themb для определении позиции!
Пробовал, но марока с перемещением.
для определения позиции курсора использовал:
Поскоку form1.left определяет положение форми в месте с бордуром, хотя можно убрать стиль.
 
G

Guest

Наскоко я искал, то канвы у трекбара нет
- да я другое имелл ввиду!
берём к примеру Паинтбокс и рисуем там!! Сколько прошло времени - одним цветом, сколько осталось другим цветом!

Ниже скинул пример с имаже!!!
Конечно не идеал! но если по работать с этим и настроить как вам надо, то можно пользоваться!
(я раньше так делал)!
 

Вложения

  • trBar.rar
    179,2 КБ · Просмотры: 187
D

Dock1100

В принципе я писал что-то похожее.
 
G

Guest

Так я и не смог нормально потестить

Картинки у меня просит, не может найти!



А всё! Надо было распаковывать!!
Ну если вас не утраивает данный варинат, тогда пишите свой трэкбар!
 

Вложения

  • 111.jpg
    111.jpg
    74,3 КБ · Просмотры: 586
D

Dock1100

вот запоковал рисунки, и извлекайте в папку а не открывайте из архива.
 

Вложения

  • ___________.zip
    586,7 КБ · Просмотры: 183
V

vital

Вот это - куита.

Добавлено:
56df349703c9.jpg

Окно для видео - тоже.
 
D

Dock1100

Вобчето ето просто образец трекбара, а всё остальное клепалось за 5 мин.
 
G

Guest

Вобчето ето просто образец трекбара, а всё остальное клепалось за 5 мин.

Я предполагал!
ждал ответа вашего!(для утверждения своих предположений)
p.s. а у вас готовый плеер есть?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!