Tmediaplayer xe 2
ich möchte div. AVI#s mit verschiedner Codierung, fps und Auflösung hintereinander mit einem Tmediaplayer abspielen. ( Habe leider kein Programm gefunden was hier aus den Mini AVIs ein gesamtes AVI erstellen kann)
Wenn ich die Dateien einzeln lade klappt die Wiedergabe, wenn ich die Files in einer Schleife durchlaufen lasse kommt die AV : "there is no driver in your system" ...., muss ich TMediaPlayer vorm laden des nächsten *.avi aufräumen ? |
AW: Tmediaplayer xe 2
Zitat:
|
AW: Tmediaplayer xe 2
anbei der code .... ein File OK, dass ganze in einer Schleife -> ACCESS VIOLATION
Delphi-Quellcode:
unit SimpleMovieplayer; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Vcl.ExtCtrls, Vcl.MPlayer, Vcl.StdCtrls, Vcl.Buttons; type TMediaPlayerForm = class(TForm) Panel1: TPanel; Panel2: TPanel; MediaPLayerStatusBar: TStatusBar; MediaPlayer1: TMediaPlayer; BitBtn1: TBitBtn; PlayBitBtn: TBitBtn; procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure BitBtn1Click(Sender: TObject); procedure PlayBitBtnClick(Sender: TObject); private procedure PlayFile(s: string); { Private-Deklarationen } public { Public-Deklarationen } playList: TStringList; end; var MediaPlayerForm: TMediaPlayerForm; implementation {$R *.dfm} uses UnitSelectAVIFiles; procedure TMediaPlayerForm.BitBtn1Click(Sender: TObject); begin SelectMediaFilesForm.playList := playList; SelectMediaFilesForm.Showmodal; if SelectMediaFilesForm.ModalResult = mrOK then begin playList := SelectMediaFilesForm.playList; end; end; procedure TMediaPlayerForm.PlayBitBtnClick(Sender: TObject); var i: integer; begin for i := 0 to playList.Count - 1 do begin MediaPLayerStatusBar.SimpleText := IntToStr(i) + ' now playing mediafile ->' + playList[i]; PlayFile(playList[i]); end; end; procedure TMediaPlayerForm.FormClose(Sender: TObject; var Action: TCloseAction); begin playList.Free; end; procedure TMediaPlayerForm.FormCreate(Sender: TObject); begin playList := TStringList.Create; end; procedure TMediaPlayerForm.PlayFile(s: string); begin if (FileExists(s)) then begin MediaPlayer1.Display := Panel1; MediaPlayer1.FileName := s; MediaPlayer1.Wait := true; MediaPlayer1.Open; MediaPlayer1.play; end; end; end. |
AW: Tmediaplayer xe 2
Suche hilft: delphi tmediaplayer playlist
|
AW: Tmediaplayer xe 2
ich kann alle Videos mit IRVANVIEW anschauen, alle Videos liegen im *.avi Format vor. (Die Bildgröße und Codierung sind jedoch nicht immer gleich) TMediaPlayer kann einige Dateien nicht öffnen AV " THERE IS NO DRIVER INSTALLED ON YOUR SYSTEM". Ich hättet erwartet von der MediaPlayer von IRVANVIEW mein Files abspielen kann, dann sollte dies doch auch der TMediaplayer von DELPHI heraus schaffen? Wenn IRVANVIEW einen DRIVER findet sollte TMEDIAPLAYER in auch finden könenn :evil:
|
AW: Tmediaplayer xe 2
Hallo,
der TMediaplayer kapselt den mplayer von Windows. Kann dieser die Dateien nicht abspielen - kann das TMediaplayer auch nicht. Grüße Klaus |
AW: Tmediaplayer xe 2
verstanden, Datei RECHTSKLICK und PLAY und dann die *.avi datei im Mediaplayer ansehen geht aber
|
AW: Tmediaplayer xe 2
zur Beachtung:
mplayer != Windows Media Player Grüße Klaus |
AW: Tmediaplayer xe 2
Es gibt aber auch die Möglichkeit einfach das Windows Media Player Control in Delphi einzubinden. (Komponente --> Komponente importieren...)
Zudem gibt es auch Komponenten zur Videowiedergabe zum Download. |
AW: Tmediaplayer xe 2
|
AW: Tmediaplayer xe 2
Zitat:
|
AW: Tmediaplayer xe 2
Zitat:
Aber dessen Name ist mplayer2 (wie ich eben festgestellt habe). Sorry, wenn ich für Verwirrung gesorgt haben sollte. Grüße Klaus |
AW: Tmediaplayer xe 2
Zitat:
AVI ist an und für sich kein "Format", da es lediglich einen Container für diverse Formate beschreibt, ähnlich wie RIFF WAVE. In einem AVI können also Videos als MPEG2, DivX, Cinepak, h.264, etc. etc. stecken, die meist auch alle je ihren eigenen Codec brauchen, und ein Codec auch ggf. je nach weiterem Subformat wiederum neu/anders initialisiert werden muss. Dass alles AVI sei, hilft daher kein Stück weiter. Ich vermute einfach, dass der Mediaplayer in Delphi bei einem Dateiwechsel nicht auch automatisch eine Neuinitialisierung des zu verwendenden Codecs veranlasst. Ich hab grad kein Delphi zur Hand, aber TMediaplayer bietet vermutlich irgend eine Methode, die dazu fürhren kann. Sei es ein Close() oder was auch immer. Einfach mal in der Codevervollständigung scrollen und zu wahrscheinlichen Kandidaten die Hilfe starten und auch mal einfach testen. Das ist zumindest meine übliche Methode wenn ich ein bestimmtes Verhalten suche, was meist ganz gut klappt. |
AW: Tmediaplayer xe 2
Zitat:
Delphi-Quellcode:
oder
procedure TMediaPlayerForm.PlayFile(s: string);
begin if (FileExists(s)) then begin // Player "löschen" if Assigned(MediaPlayer1) then FreeAndNil(MediaPlayer1); // Neuen Player erzeugen MediaPlayer1 := TMediaPlayer.Create(Self); MediaPlayer1.Parent := Self; // wie gewohnt benutzen MediaPlayer1.Display := Panel1; MediaPlayer1.FileName := s; MediaPlayer1.Wait := true; MediaPlayer1.Open; MediaPlayer1.play; end; end;
Delphi-Quellcode:
Vielleicht genügt aber auch schon die Methode: http://docwiki.embarcadero.com/Libra...iaPlayer.Close
procedure TMediaPlayerForm.PlayFile(s: string);
begin if (FileExists(s)) then begin MediaPlayer1 := TMediaPlayer.Create(Self); try MediaPlayer1.Parent := Self; MediaPlayer1.Display := Panel1; MediaPlayer1.FileName := s; MediaPlayer1.Wait := true; MediaPlayer1.Open; MediaPlayer1.play; finally FreeAndNil(MediaPlayer1); end; end; |
AW: Tmediaplayer xe 2
der Tmediaplayer hat weiterhin beim Abspielen einzelner Files Probleme, auch mit der neuen Codeversion.
Ihm fehlen vermutlich die richtigen Codecs. Kann ich die Liste der verfügbaren Codecs mir vom Tmediaplayer ausgebenlassen ?
Delphi-Quellcode:
procedure TMediaPlayerForm.PlayFile(s: string); var MediaPlayer1: TMediaPlayer; begin if (FileExists(s)) then begin MediaPlayer1 := TMediaPlayer.Create(Self); try MediaPlayer1.Parent := Self; MediaPlayer1.Display := Panel1; MediaPlayer1.FileName := s; MediaPlayer1.Wait := true; MediaPlayer1.Open; MediaPlayer1.play; finally begin // warte bis video abgespielt .... repeat sleep(1000); until (MediaPlayer1.Position = MediaPlayer1.Length); FreeAndNil(MediaPlayer1); end; end; end; end; |
AW: Tmediaplayer xe 2
Warum bestehst du denn so auf dem alten TMediaPlayer?
Naja, sei es drum, hier steht etwas zu den Codecs bei MCI: http://support.microsoft.com/kb/142731/de |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:05 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