Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.05;
Скачать: CL | DM;

Вниз

mediaplayer & tarckbar   Найти похожие ветки 

 
Groove   (2002-06-19 15:37) [0]

Здрасте! Как сделать зависимыми друг от друга позицию трэка в медиаплеере и позицию трэкбара? Заранее спасибо


 
SI-riuss ©   (2002-06-20 11:08) [1]

Я уже писал подобную программку, но, к сожалению, утерял исходник, поэтому объясню на пальцах.
Прямой зависимости не поставишь, поэтому:
После загрузки файла в медиаплеер:
TrackBar1.Max:=MediaPlayer1.TrackLength;
TrackBar1.Frequency:=TrackBar1.Max div 10;
Можешь вместо 10 поставить другое число - количество шкалы TrackBar1.
При воспроизведении ставишь зависимость:
TrackBar1.Position:=MediaPlayer1.TrackPosition;
При перетаскивании ручки трекбара, соответственно, наоборот:
MediaPlayer1.TrackPosition:=TrackBar1.Position;
Ну и далее все в таком же духе...


 
Neolord   (2002-07-02 04:58) [2]

Добавлю - у трекбара событие onchange


 
gusd   (2002-08-08 17:39) [3]

При воспроизведении ставишь зависимость:
TrackBar1.Position:=MediaPlayer1.TrackPosition;

А при воспроизведении постоянно обновлять ползунок?
Timerом чтоли? И ещё -> если ползунок каким то образом двигается при воспроизведении(допустим Timerом) TrackBar1.Position:=MediaPlayer1.TrackPosition; то срабатывает событие Trackbara onchange
MediaPlayer1.TrackPosition:=TrackBar1.Position;


Gusd!


 
Groove   (2002-08-08 20:22) [4]

Здрасте. Но при проигрывании передвигается трэкбар, значит onchange тоже сработает, тоесть
двигать его рукой = воспроизведение
нужно сделать как-то процидуры OnMouseDown и OnMouseUp


 
SI-riuss ©   (2002-08-10 11:12) [5]

procedure TForm1.Timer1Timer(Sender: TObject);
begin
TrackBar1.Position:=MediaPlayer1.Position;
end;

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
MediaPlayer1.Position:=TrackBar1.Position;
end;

У меня все работает...


 
Groove   (2002-08-11 15:14) [6]

А у меня нет, HEEEEELLLLLPPPPP!!!!!!!!!!


 
SI-riuss ©   (2002-08-12 01:03) [7]

Не скули, погоди, давай разберемся.
Организуй код в таком виде:
procedure TForm1.FormCreate(Sender: TObject);
begin
With MediaPlayer1 do
begin
Filename:="S:\ser1.avi";
Open;
TrackBar1.Max:=MediaPlayer1.Length;
TrackBar1.Frequency:=TrackBar1.Max div 10;
Play;
end;
end;

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
MediaPlayer1.Position:=TrackBar1.Position;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
TrackBar1.Position:=MediaPlayer1.Position;
end;

Что тебе выдает комп?


 
GIL ©   (2002-08-12 05:14) [8]

У меня тоже так не работает, пока не нашел TrackBar с событиями OnMouseDown/Up, и тогда все стало просто шоколадно, кто хочет могу поделиться компонентои или текстом проги, кстати компа называется swTrackBar откуда качал - непомню, извините.


 
Groove   (2002-08-12 13:26) [9]

Я переделал стандартный компонент, добавил onmouseup и onmousedown всё решилось моментально!!!


 
Thor   (2002-08-12 18:00) [10]

GIL делись компонентом и текстом
мыль на tho234@ngs.ru заранее пасибо


 
Thor   (2002-08-12 19:03) [11]

SI-riuss и у меня этот способ не идет пишет
При инициализации MCI обнаружена неполадка


 
GIL ©   (2002-08-12 21:35) [12]

unit play;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, swTrackBar, ExtCtrls, MPlayer;

type
TForm1 = class(TForm)
MediaPlayer1: TMediaPlayer;
Timer1: TTimer;
swTrackBar1: TswTrackBar;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure swTrackBar1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure swTrackBar1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormCreate(Sender: TObject);
procedure swTrackBar1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
clicked:boolean;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
mediaplayer1.filename:="D:\music\2 Pac - Changes.mp3";
mediaplayer1.open;
swtrackbar1.Max:=mediaplayer1.Length div 10;
timer1.enabled:=true;
mediaplayer1.play;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if not clicked then swtrackbar1.position:=mediaplayer1.position;
if mediaplayer1.position=mediaplayer1.length then begin mediaplayer1.close;timer1.enabled:=false; end;
end;

procedure TForm1.swTrackBar1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
clicked:=true;
end;

procedure TForm1.swTrackBar1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
mediaplayer1.position:=swtrackbar1.position;
mediaplayer1.play;
clicked:=false;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
clicked:=false;
end;

procedure TForm1.swTrackBar1Change(Sender: TObject);
begin
if clicked then mediaplayer1.position:=swtrackbar1.position;
end;

end.


 
SI-riuss ©   (2002-08-14 14:40) [13]

Тогда у меня уникальный комп. (AutoOpen должен быть false).
Ничего не понимаю...


 
Groove   (2002-08-14 16:26) [14]

Чё уникального? Должнобыть AutoOpen=false. После Mediaplayer1.filename:="Например C:\1.mp3";
должнобыть
Mediaplayer1.open;
вот и всё, всё рулит =))


 
SI-riuss ©   (2002-08-14 20:16) [15]

Ну все верно. Должно работать. Я не понял, почему у кого-то не идет. Специально написал код с нулевой установки компонентов. Без всяких Properties-изменений...


 
Thor   (2002-08-19 12:00) [16]

Люди нужно чтобы прогресс индикатор был не только для одного файла, т.е. файл выбираешь на форме с помощью компонентов, че тогда делать с
mediaplayer1.filename:="D:\music\2 Pac - Changes.mp3";

спасибо


 
SI-riuss ©   (2002-08-19 21:52) [17]

Ну, например, если вызвать диалоговое окно:
procedure TForm1.OpenClick(Sender: TObject);
begin
OpenDialog1.DefaultExt := "mp3";
OpenDialog1.Filename := "*.mp3";
if OpenDialog1.Execute then
begin
MediaPlayer1.Filename := OpenDialog1.Filename;
MediaPlayer1.Open;
TrackBar1.Max:=MediaPlayer1.Length;
TrackBar1.Frequency:=TrackBar1.Max div 10;
MediaPlayer1.Play;
end;
end;

Ну и остальное то же самое.

Не забудь поставить на форму компоненту OpenDialog :))



Страницы: 1 вся ветка

Текущий архив: 2002.12.05;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.014 c
14-14750
Dr. Well
2002-11-14 13:44
2002.12.05
I need help!


1-14492
Daken
2002-11-26 07:15
2002.12.05
Помогите вытащить символ


3-14419
skirdov
2002-11-16 00:47
2002.12.05
Русский язык в таблицах Paradox


14-14821
vic_774N
2002-11-16 09:36
2002.12.05
Уважаемые мастера и другие


3-14424
dastbin
2002-11-18 09:48
2002.12.05
отображение информации в grid