Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Neuen Beitrag zur Code-Library hinzufügen (https://www.delphipraxis.net/33-neuen-beitrag-zur-code-library-hinzufuegen/)
-   -   Mediaplayer Pause Screen erstellen fehlt das Bild (https://www.delphipraxis.net/171613-mediaplayer-pause-screen-erstellen-fehlt-das-bild.html)

blondervolker 15. Nov 2012 08:21

Mediaplayer Pause Screen erstellen fehlt das Bild
 
Hallo,

Ich wollte im Mediaplayer auf Pause stellen und dann mit einem
Button ein Bild erstellen und in ZW-Ablage speichern.
Die Form ist ist zwar komplett als Bild vorhanden,nur der Inhalt
des "Bildes vom Mediaplayer" is weechh...:stupid:


Hat jemand eine Idee wie das funktioniert?

Delphi-Quellcode:
procedure TForm18.AdvGlassButton11Click(Sender: TObject);
var
Bitmap:TBitmap;
begin
Bitmap:=GetFormImage;
try
Clipboard.Assign(Bitmap);
finally
Bitmap.Free;
end;
end;

DeddyH 15. Nov 2012 08:34

AW: Mediaplayer Pause Screen erstellen fehlt das Bild
 
Such mal nach Hier im Forum suchenMediaplayer Screenshot, da müsste sich etwas finden lassen.

blondervolker 15. Nov 2012 08:41

AW: Mediaplayer Pause Screen erstellen fehlt das Bild
 
Hab ich schon gesucht wie ein Blödi,noch nix gefunden...:cry:

DeddyH 15. Nov 2012 08:48

AW: Mediaplayer Pause Screen erstellen fehlt das Bild
 
Wie man hier lesen kann, ist das Ganze gar nicht ohne, da muss man wohl auf DirectX zurückgreifen.

EWeiss 15. Nov 2012 09:17

AW: Mediaplayer Pause Screen erstellen fehlt das Bild
 
Zitat:

Zitat von DeddyH (Beitrag 1191249)
Wie man hier lesen kann, ist das Ganze gar nicht ohne, da muss man wohl auf DirectX zurückgreifen.

Den muss ich beipflichten..

Es sei denn man liest die Video Datei in einen stream und greift auf das gerade abgespielte Frame zu.
Mit AVI habe ich es schon gemacht mit dem Mediaplayer dürfte das etwas komplizierter werden abhängig vom Codec
der verwendet wird beim abspielen.

gruss

blondervolker 15. Nov 2012 09:20

AW: Mediaplayer Pause Screen erstellen fehlt das Bild
 
Also würde das bedeuten,ich kann ein Srceen vom Frame erstellen?
Oder sehe ich das falsch?:-D

EWeiss 15. Nov 2012 09:24

AW: Mediaplayer Pause Screen erstellen fehlt das Bild
 
Zitat:

Zitat von blondervolker (Beitrag 1191254)
Also würde das bedeuten,ich kann ein Srceen vom Frame erstellen?
Oder sehe ich das falsch?:-D

Ja wenn du an das aktuelle frame herankommst ;)

gruss

Medium 15. Nov 2012 09:27

AW: Mediaplayer Pause Screen erstellen fehlt das Bild
 
Das DSPack ist recht handlich, wenn es darum geht Einzelbilder aus einem Video zu bekommen, dass einen beliebigen installierten Codec verwendet. (Die Codecs selber alle zu implementieren dürfte Mannjahre dauern.)

EWeiss 15. Nov 2012 09:31

AW: Mediaplayer Pause Screen erstellen fehlt das Bild
 
Zitat:

Zitat von Medium (Beitrag 1191258)
Das DSPack ist recht handlich, wenn es darum geht Einzelbilder aus einem Video zu bekommen, dass einen beliebigen installierten Codec verwendet. (Die Codecs selber alle zu implementieren dürfte Mannjahre dauern.)

Bei AVI handhabe ich das so wobei ich direkt auf das Bitmap aus dem Stream zurückgreifen kann.
Siehe ..
Delphi-Quellcode:
BMP := AVIStreamGetFrame(GetFramePointer, frame);
Delphi-Quellcode:
procedure GetAVIFrame;
var
  Frame         : Integer;
  AVIElapsedTime : DWord;
  BMP           : ^TBITMAPINFOHEADER;

begin
  // Get the elapsed time. If the elapsed time is longer than the
  // video clip, then reset the elapsed time and video start
  AVIElapsedTime :=GetTickCount() - AVIStart;
  if AVIElapsedTime > AVILength then
  begin
    AVIStart :=GetTickCount();
    AVIElapsedTime :=0;
  end;

  // Get the next frame based on the elaped time
  Frame :=AVIStreamTimeToSample(AVIStream, AVIElapsedTime);
  if Frame <> ActiveFrame then
  begin
    ActiveFrame :=Frame;
{    // use this for uncompressed video ONLY
    AVIStreamRead(AviStream, Frame, 1, FrameData, AviInfo.dwWidth*AviInfo.dwHeight*3, nil, nil);
}
    // use this for compressed video
    BMP := AVIStreamGetFrame(GetFramePointer, frame);
    FrameData := Pointer(Cardinal(BMP) + BMP.biSize + BMP.biClrUsed*sizeof(RGBQUAD));
    // the drawdib function will uncompress the framedata as it tries to copy the BMP
    DrawDibDraw(0, H_DC, 0, 0, AviInfo.dwWidth, AviInfo.dwHeight, @BMP, FrameData, 0, 0, AVIInfo.dwWidth, AVIInfo.dwHeight, 0);

    SwapRGB(FrameData, AviInfo.dwWidth * AviInfo.dwHeight); // Swap the BGR image to a RGB image

    glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, AviInfo.dwWidth, AviInfo.dwHeight, GL_RGB, GL_UNSIGNED_BYTE, FrameData);

  end;
end;
Zitat:

Die Codecs selber alle zu implementieren dürfte Mannjahre dauern.)
Das ist wohl war.

gruss

Davidlocke13 15. Nov 2012 10:53

AW: Mediaplayer Pause Screen erstellen fehlt das Bild
 
Warum kein Hardcopy ?
http://www.chip.de/downloads/Hardcopy_12998258.html


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:19 Uhr.
Seite 1 von 2  1 2      

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