Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2002.12.05;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "Media";
Текущий архив: 2002.12.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.008 c
7-14832
Slam
2002-10-02 14:05
2002.12.05
Болванка


14-14749
Anar
2002-11-13 18:32
2002.12.05
Что такое OST?


6-14700
daan_m
2002-10-06 14:26
2002.12.05
Как загрузить прогу на удалённом компе в локальной сети;


4-14867
Woolen
2002-10-24 12:42
2002.12.05
Извлечении такстовой версии из файла


1-14595
[BAD]Angel
2002-11-26 16:30
2002.12.05
СРОЧНО НУЖНА ПОМОЩЬ!!!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский