Odtwarzacz multimediów

patrol_x

Elo wam, artykuł kieruje do początkujących programistów. Do zrobienia odtwarzacza potrzebny jest komponent DSPack, który dodałem w załączniku. Już z samego początku dodalemy dodajemy drugą forme którą zajmiemy się na początku.

Form 2
Na formie umieszczamy komponent DSVideoWindowEx2 z zakładki DSPack, ustawiamy właściwość Caption na Wideo czy Video jak kto woli, albo inaczej. I przypisujemy formie wartość Autosize na ture.
user image

Form 1
Teraz zajmiemy się główną formą programu. Dodajemy na forme komponenty MainMenu z zakładki standard, dwie etykiedy label z zakładki standard , OpenDialog z zakładki Dialogs, FilterGraph z zakładki DSPack, i pasek postępu DSTrackBar z zakładki DSPack.

Teraz zajmiemy się komponentem MainMenu, który jest na naszej formie. Klikamy na niego dwa razy i powinno się pokazać okienko z paskiemuser imagePiewszemu okienku wpisujemy wartość caption Plik, i powinno nam się pokazać się puste pole zmieniamy właściwość caption tego pola na Otwórz. Kikamy dwa razy na przycisk Otwórz który przedchwilą stworzyliśmy powinno pokazać nam się okienko w którym wpisujemy kod:

procedure TForm1.SpeedButton4Click(Sender: TObject);
begin
  if(Form2=nil) then Form2:=TForm2.Create(Form1);
if OpenDialog1.Execute then
 begin
   FilterGraph1.ClearGraph;
   FilterGraph1.RenderFile(OpenDialog1.FileName); 

   if (OpenDialog1.FilterIndex = 1) then  \\Pokazuje po otwarciu formatu wideo forme z okienkiem wideo
      Form2.Show
      else
      Form2.Hide;

      Label2.Caption := OpenDialog1.FileName; \\Pokazuje ścieżke pliku
      FilterGraph1.Play; \\Po otwarciu pliku nasz program automatycznie zaczyna odtwarzać
   end;
end;

Teraz zajmiemy się komponentem OpenDialog klikamy na niego i patrzymy na okienko obiects inspektor user image i klikamy na filter user image później klikamy na przycisk z kropkami, i powinno pokazać nam się okienko user image, wpisujemy filtry tak jak na obrazku.

Teraz zajmijmy się DSTrackBar'em

Kilkamy na niego, w okienku objects inspector zaznazamy zakładke events i Szukamy pozycji FilterGraph user image klikamy na nią i wybieramy Pozycje FilterGraph1, następnie szukamy pozycji on timeruser image klikamy na nią dwukrotnie i wpisujemy procedurę

Label1.Caption := format('%s / %s',
         [TimeToStr(CurrentPos / (24*3600*1000)),
          TimeToStr(StopPos / (24*3600*1000))]);

Zabawmy się w głównej formie

Klikamy na główną forme i w okienku objects inspector zaznaczamy zakładke events i szukamy pozycji OnClose , kilkamy na tą pozycje dwa razy i wpisujemy procedurę

FilterGraph1.ClearGraph;
FilterGraph1.Destroy;

Przejdzmy do Okienka wideo

Przejdzmy do okienka wideo tylko że teraz zajmiemy się komponentę który tam umieściliśmy. Klikamy na komponent wideo (DSVideoWindowEx21) i ustawiamy tam jak jest poniżej ustawione na rysunku(ustawiamy podkreślone na czerwono Punkty).

  1. AspectRatio ustawiamy na rmStretched
  2. FilterGraph wpisujemy tak Form1.FilterGraph1
  3. No ScrenSaver ustawiamy na true

user image

No i dodajemy trzy buttony (przyciski) mogą to być SpeedButtony jak i zwykłe (różnią się tym że SpeedButtom może mieć obrazek a zwykły nie). Więc mamy trzy przyciski Stop, Pause i Play, teraz je zaprogramujmy:

Do play piszemy taką definicje

FilterGraph1.Play;

Do stop

FilterGraph1.Stop;

I do pause

FilterGraph1.Pause;

www.members.lycos.co.uk/testowyatestowya/Obrazkidoarta/odtwarzacz.php | Tu znajdziecie ten sam artykuł ze zdjęciami (które tutaj nie chodzą) i DSPackiem do ściągnięcia http://sourceforge.net/projects/dspack

zapraszam www.force.rox.pl

13 komentarzy

U mnie to nie działa - [Error] Unit2.pas(12): Unsatisfied forward or external declaration: 'TForm2.DSVideoWindowEx21Click'

Proszę o wrzucenie screenów lub podanie linku z takim samym artykułem.

Ja rozumiem, że dawno to było dodane ale może ktoś wrzucić jeszcze raz screeny?

viruzzo
[delphi]FilterGraph1.Previous;[/delphi]

sochalewski masz rację!!!
ejj mam problem.Przycisk Stop zamiast stopować odtwarzanie tylko je pauzuje.Jaki kod trzeba mieć żeby Trackbar wracał na początek?Pomóżcie!

na www.mediaxproject.y0.pl jest lepszy odtwarzacz. try it!

Label1.Caption := format('%s / %s',
[TimeToStr(CurrentPos / (2436001000)),
TimeToStr(StopPos / (2436001000))])

niestety ten kod odwołuję się tylko do plików Wav i mp3, za jakiś czas spróbuje dopracować kod.

ech, ten sam art był z rok temu w EKSPERCIE... MASOWY PLAGIAT.

Jeśli ktoś chce, żeby pasek działał- musi dać jeszcze przed renderowaniem taki kod:

FilterGraph1.Active:=False;
FilterGraph1.Active:=True;

Nie pytajcie czemu- tak było w przykładach i tak działa :P . Jeśli ktoś wymaga potwierdzenia- moja wersja playera: www.tomsoft.freehost.pl/tommediaplayer110.rar

dobra wszystko działa, sorry za klopoty

patrol_x : dalej bmp :/

ok, thx za podpowiedz. macie tutaj z obrazkami www.members.lycos.co.uk/testowyatestowya/Obrazkidoarta/odtwarzacz.php nie chce mi się myśleć więc zamieszczam na serwerze dokument :D

zmień .bmp na .jpg lub .gif