AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Videos mit Delphi abspielen!
Thema durchsuchen
Ansicht
Themen-Optionen

Videos mit Delphi abspielen!

Ein Thema von DelphiUser7 · begonnen am 4. Sep 2003 · letzter Beitrag vom 6. Sep 2003
Antwort Antwort
DelphiUser7

Registriert seit: 27. Aug 2003
179 Beiträge
 
#1

Videos mit Delphi abspielen!

  Alt 4. Sep 2003, 20:26
Hallo!

Weiß ihr jemand zufällig, wie ich Videos mit dem MediaPlayer von Delphi abspielen kann??
Bitte um schnelle Antwort;

Gruss
DelphiUser7
  Mit Zitat antworten Zitat
LiquidSteel

Registriert seit: 21. Jul 2003
14 Beiträge
 
#2

Re: Videos mit Delphi abspielen!

  Alt 4. Sep 2003, 20:48
hiho

ich glaub ich kann die helfen


mit nem play button und nem dialog:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  If Mediaplayer1.Mode = mpOpen then Mediaplayer1.close;
  Mediaplayer1.FileName := opendialog1.FileName;
  Mediaplayer1.Open;
  Mediaplayer1.Play
end;

und mit ner playlist so:

Delphi-Quellcode:
procedure TForm1.ListBox1DblClick(Sender: TObject);
begin
  If Mediaplayer1.Mode = mpOpen then Mediaplayer1.close;
  Mediaplayer1.FileName := PlayList1.Items.Strings[PlayList1.ItemIndex];
  Mediaplayer1.Open;
  Mediaplayer1.Play
end;

also so mach ich es jedenfalls und es klapt .. ich hoffe ich konnte dir helfen

  Mit Zitat antworten Zitat
DelphiUser7

Registriert seit: 27. Aug 2003
179 Beiträge
 
#3

Re: Videos mit Delphi abspielen!

  Alt 4. Sep 2003, 21:21
Hi!

Ich benutze zum Anzeigen des Filmes eine TAnimate-Komponente;
Diese zeigt aber nichts an, wenn ich den Play-Button drücke;
Und das, obwohl ich der Eigenschaft 'Display' von TMediaPlayer die TAnimate-Komponente zugewiesen habe;
Weisst du vielleicht, wo das Problem liegt?

Gruss
DelphiUser7
  Mit Zitat antworten Zitat
LiquidSteel

Registriert seit: 21. Jul 2003
14 Beiträge
 
#4

Re: Videos mit Delphi abspielen!

  Alt 5. Sep 2003, 12:52
hiho

also ich hab es mal mit ner TAnimate als Display versucht und bei mir klapt das einwandfrei.

Aber es gibt video formate die der MediaPlayer net abspielen kann z.B. xvid.

Wie öffnest du denn filme mit dem Mediaplayer ??
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Videos mit Delphi abspielen!

  Alt 5. Sep 2003, 18:56
Moin DelphiUser,

für die Eigenschaft Display kannst Du prinzipiell jedes TWinControl verwenden. Meist wird man wohl ein TPanel nehmen.
Um festzustellen, warum ein bestimmter Typ nicht abgespielt wird, wäre wohl ganz sinnvoll es mal "zu Fuss" also mit den MCI Funktionen zu versuchen, auf denen TMediaPlayer aufbaut, oder Du fragst einfach die Eigenschaft Error ab.

Formate, die der Windows Mediaplayer abspielen kann, TMediaplayer aber nicht, werden mit Sicherheit nicht auf der MCI (Media Control Interface) aufbauen, sonder auf DirectShow.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
LiquidSteel

Registriert seit: 21. Jul 2003
14 Beiträge
 
#6

Re: Videos mit Delphi abspielen!

  Alt 5. Sep 2003, 19:42
hiho

und wie spielt man ein video mit MCI Funktionen ab ??

  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Videos mit Delphi abspielen!

  Alt 5. Sep 2003, 21:22
Moin LiquidSteel,

die einfachste Methode ginge so:

Unit mmsystem muss mit eingebunden werden.

Delphi-Quellcode:
procedure TfrmMAIN.Button4Click(Sender: TObject);

var
  mciErr : DWORD;

begin
  // try/finally um bei einem Fehler einfach mit exit rausgehen zu können,
  // und trotzdem den Fehler angzeigt zu bekommen
  try
    // erst kommt das Kommando, in diesem Falle soll das Device geöffnet werden
    // Es soll das Device mpegvideo geöffnet werden, und dabei die Datei d:\test.mpeg
    // diese muss mit einem ! angehängt werden
    // Um die Datei leichter ansprechen zu können, wird ein alias vergeben, hier video1 genannt
    // Als Parent dient hier das Formular selber. Es muss das Handle angegeben werden,
    // und zwar als String, da das gesamte Kommando als ein String angegeben wird
    // nil = Es wird nichts zurückgegeben, bzw. was zurückgegeben wird, soll ignoriert werden.
    // 0 = Bufferlänge für die Rückgabe. Da nichts zurückgegben werden soll ist die Länge 0
    // Der letzte Parameter ist das Handle des Fensters, an das evenutelle Benachrichtigungen geschickt werden sollen.
    // (siehe auch TMediaPlayer.OnNotify
    mciErr := mciSendString(PChar('open mpegvideo!d:\test.mpeg alias video1 parent '+IntToStr(self.Handle)),nil,0,self.Handle);
    if mciErr <> 0 then exit;
    // Das Display zuweisen, hier wieder als Handle
    mciErr := mciSendString(PChar('window video1 handle '+IntToStr(self.Handle)),nil,0,self.Handle);
    if mciErr <> 0 then exit;
    // und wenn bislang alles gut gegangen ist, das Video abspielen
    mciErr := mciSendString('play video1',nil,0,self.Handle);
  finally
    if mciErr <> ERROR_SUCCESS then DisplayMciError(mciErr);
  end;
end;

// Nur um die Fehleranzeige zu vereinfachen
procedure DisplayMciError(const AmciErr : DWORD);

var
  pBuf : PChar;
  dwLen : DWORD;

begin
  dwLen := 1024;
  pBuf := AllocMem(dwLen);
  try
    mciGetErrorString(AmciErr,pBuf,dwLen);
    ShowMessage(trim(pBuf));
  finally
    FreeMem(pBuf,dwLen);
  end;
end;

// Wichtig: Alle Geräte wieder schliessen
procedure TfrmMAIN.FormDestroy(Sender: TObject);
begin
  mciSendString(PChar('close all'),nil,0,self.Handle);
end;
Wie ich jetzt in diesem Falle für MPEGS auf mpegvideo als device gekommen bin, kann ich nicht einmal sagen.
Weitere Einzelheiten zu mciSendString können dem PSDK oder MSDN entnommen werden.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
DelphiUser7

Registriert seit: 27. Aug 2003
179 Beiträge
 
#8

Re: Videos mit Delphi abspielen!

  Alt 5. Sep 2003, 21:26
Und wie bekomme ich DirectShow???;

Gruss
DelphiUser7
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Videos mit Delphi abspielen!

  Alt 5. Sep 2003, 21:45
Moin DelphiUser,

das könnte so aussehen (einfaches Beispiel gemäss PSDK)

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);

var
  pGraph : IGraphBuilder;
  pControl : IMediaControl;
  pEvent : IMediaEvent;
  evCode : integer;

begin
  CoInitialize(nil);
  try
    CoCreateInstance(CLSID_FilterGraph, nil, CLSCTX_INPROC_SERVER,IID_IGraphBuilder,pGraph);
    pGraph.QueryInterface(IID_IMediaControl,pControl);
    pGraph.QueryInterface(IID_IMediaEvent,pEvent);
    if Succeeded(pGraph.RenderFile('D:\test.mpeg',nil)) then begin
      if Succeeded(pControl.Run) then begin
        pEvent.WaitForCompletion(INFINITE,evCode);
      end;
    end;
  finally
    CoUninitialize();
  end;
end;
Das Problem ist hier, dass bei Delphi (zumindest bei D5), die ganzen Interfaces nicht deklariert sind. Such' hier mal nach Hier im Forum suchenDSPACK, dazu hab' ich hier schon ein wenig geschrieben. Wichtig für dieses Beispiel ist, dass dort die Interfaches usw. deklariert sind (DirectShow9.pas).
Nähere Erklärungen kann ich Dir allerdings zur Zeit auch nicht geben, da ich selber noch dabei bin mich darin einzuarbeiten.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
DelphiUser7

Registriert seit: 27. Aug 2003
179 Beiträge
 
#10

Re: Videos mit Delphi abspielen!

  Alt 6. Sep 2003, 00:09
Ich hab mir das Pack mal herunter geladen, und es sieht ziemlich kompliziert aus;
Gibt es nicht eine andere Methode, um auf evtl. vorhandene Windows- bzw. DivX-Codecs zuzugreifen?
Bitte um schnelle Antwort!

Gruss
DelphiUser7
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz