![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
mediaplayer & tarckbar [D6, WinXP]
Groove © (2002-06-19 15:37:00)Здрасте! Как сделать зависимыми друг от друга позицию трэка в медиаплеере и позицию трэкбара? Заранее спасибо
SI-riuss (2002-08-19 21:52:00) [1]Ну, например, если вызвать диалоговое окно:
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 :))
Thor (2002-08-19 12:00:00) [2]Люди нужно чтобы прогресс индикатор был не только для одного файла, т.е. файл выбираешь на форме с помощью компонентов, че тогда делать с
mediaplayer1.filename:="D:\music\2 Pac - Changes.mp3";
спасибо
SI-riuss (2002-08-14 20:16:00) [3]Ну все верно. Должно работать. Я не понял, почему у кого-то не идет. Специально написал код с нулевой установки компонентов. Без всяких Properties-изменений...
Groove (2002-08-14 16:26:00) [4]Чё уникального? Должнобыть AutoOpen=false. После Mediaplayer1.filename:="Например C:\1.mp3";
должнобыть
Mediaplayer1.open;
вот и всё, всё рулит =))
SI-riuss (2002-08-14 14:40:00) [5]Тогда у меня уникальный комп. (AutoOpen должен быть false).
Ничего не понимаю...
GIL (2002-08-12 21:35:00) [6]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.
Thor (2002-08-12 19:03:00) [7]SI-riuss и у меня этот способ не идет пишет
При инициализации MCI обнаружена неполадка
Thor (2002-08-12 18:00:00) [8]GIL делись компонентом и текстом
мыль на tho234@ngs.ru заранее пасибо
Groove (2002-08-12 13:26:00) [9]Я переделал стандартный компонент, добавил onmouseup и onmousedown всё решилось моментально!!!
GIL (2002-08-12 05:14:00) [10]У меня тоже так не работает, пока не нашел TrackBar с событиями OnMouseDown/Up, и тогда все стало просто шоколадно, кто хочет могу поделиться компонентои или текстом проги, кстати компа называется swTrackBar откуда качал - непомню, извините.
SI-riuss (2002-08-12 01:03:00) [11]Не скули, погоди, давай разберемся.
Организуй код в таком виде:
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;
Что тебе выдает комп?
Groove (2002-08-11 15:14:00) [12]А у меня нет, HEEEEELLLLLPPPPP!!!!!!!!!!
SI-riuss (2002-08-10 11:12:00) [13]
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-08 20:22:00) [14]Здрасте. Но при проигрывании передвигается трэкбар, значит onchange тоже сработает, тоесть
двигать его рукой = воспроизведение
нужно сделать как-то процидуры OnMouseDown и OnMouseUp
gusd (2002-08-08 17:39:00) [15]При воспроизведении ставишь зависимость:
TrackBar1.Position:=MediaPlayer1.TrackPosition;
А при воспроизведении постоянно обновлять ползунок?
Timerом чтоли? И ещё -> если ползунок каким то образом двигается при воспроизведении(допустим Timerом) TrackBar1.Position:=MediaPlayer1.TrackPosition;то срабатывает событие Trackbara onchange
MediaPlayer1.TrackPosition:=TrackBar1.Position;
Gusd!
Neolord (2002-07-02 04:58:00) [16]Добавлю - у трекбара событие onchange
SI-riuss (2002-06-20 11:08:00) [17]Я уже писал подобную программку, но, к сожалению, утерял исходник, поэтому объясню на пальцах.
Прямой зависимости не поставишь, поэтому:
После загрузки файла в медиаплеер:
TrackBar1.Max:=MediaPlayer1.TrackLength;
TrackBar1.Frequency:=TrackBar1.Max div 10;
Можешь вместо 10 поставить другое число - количество шкалы TrackBar1.
При воспроизведении ставишь зависимость:
TrackBar1.Position:=MediaPlayer1.TrackPosition;
При перетаскивании ручки трекбара, соответственно, наоборот:
MediaPlayer1.TrackPosition:=TrackBar1.Position;
Ну и далее все в таком же духе...