AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TMediaPlayer - Video in Vollbild anzeigen

Ein Thema von f4k3 · begonnen am 7. Mai 2008 · letzter Beitrag vom 8. Mai 2008
Antwort Antwort
Benutzerbild von f4k3
f4k3

Registriert seit: 15. Aug 2007
Ort: Nürnberg
313 Beiträge
 
Delphi 2007 Architect
 
#1

TMediaPlayer - Video in Vollbild anzeigen

  Alt 7. Mai 2008, 16:37
Moin Moin liebe Delphianer

So kurz vor Feierabend und ich hab dennoch n Problem ...

Ich muss in Video in Vollbild anzeigen lassen ... das Video wird über die TMediaPlayer-Komponente geöffnet und abgespielt.
Als Display dient ein Panel.

Ich hab der Form (auf der das Video abgespielt werden soll) ...
Delphi-Quellcode:
Height := Screen.Height;
Width := Screen.Width;
... zugewiesen

Das gleiche auch dem Panel ...

Das Video wird zwar abgespielt ... allerdings füllt es nur n drittel des Panels aus ...
Die eigentliche Größe des Videos ist nämlich nicht so groß, die Qualität auf einer Auflösung von 1600x1200
ist aber immer noch beachtlich und somit kann das Video problemlos im Maximierten Modus angezeigt werden (Mit VLC-Player, bzw. Windows Media Player)

gibt es evtl. in der TMediaPlayer-Komponente dass ich das Video maximiert anzeigen lassen kann?!
oder über die Display-Eigenschaft?!

Wenn Fragen offen sind einfach drauf los schiessen

Vielen Dank für Eure Hilfe

Euer f4k3
Sascha
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: TMediaPlayer - Video in Vollbild anzeigen

  Alt 7. Mai 2008, 16:44
Vielleicht kann das hier dir helfen.

Mfg
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Benutzerbild von f4k3
f4k3

Registriert seit: 15. Aug 2007
Ort: Nürnberg
313 Beiträge
 
Delphi 2007 Architect
 
#3

Re: TMediaPlayer - Video in Vollbild anzeigen

  Alt 8. Mai 2008, 11:18
Zitat von Fussball-Robby:
Vielleicht kann das hier dir helfen.

Mfg
leider nicht ...

in dem Thread wird ja behandelt wie man das Video skaliert.
Meiner Ansicht nach gibts in dem Thread nix darüber wie ich mit DisplayReg oder mcisendstring umgehen muss ...

werd da in der hilfe auch net ganz schlau draus ;(

kann mir des jemand erklären?!

Danke euer f4k3
Sascha
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.096 Beiträge
 
FreePascal / Lazarus
 
#4

Re: TMediaPlayer - Video in Vollbild anzeigen

  Alt 8. Mai 2008, 11:31
Hi,

Delphi-Quellcode:
//MediaPlayer.DisplayRect := Rect(links, oben, rechts, unten);
MediaPlayer.DisplayRect := Rect(0, 0, Panel.Width, Panel.Height);
Sollte eigentlich klappen.

Wenn es nicht verzerren sollte, musst du natürlich ein wenig rumrechnen. Ich hab es mal so gemacht:

Delphi-Quellcode:
//MCIAnzeige ist mein Panel

    MediaPlayer.Open;
    MediaPlayer.DisplayRect := Rect(0, 0, 0, 0);
    if (MediaPlayer.DisplayRect.Right > 0) and
      (MediaPlayer.DisplayRect.Bottom > 0) then
    begin
      if (MediaPlayer.DisplayRect.Right > MCIAnzeige.Width) or
        (MediaPlayer.DisplayRect.Bottom > MCIAnzeige.Height) or
        ((MediaPlayer.DisplayRect.Right * 2 <= MCIAnzeige.Width) and
        (MediaPlayer.DisplayRect.Bottom * 2 <= MCIAnzeige.Height)) then
      begin
        NewWidth := MediaPlayer.DisplayRect.Right * MCIAnzeige.Height
          div MediaPlayer.DisplayRect.Bottom;
        if NewWidth > MCIAnzeige.Width then
        begin
          NewHeight := MediaPlayer.DisplayRect.Bottom * MCIAnzeige.Width
            div MediaPlayer.DisplayRect.Right;
          NewWidth := MCIAnzeige.Width;
        end else
          NewHeight := MCIAnzeige.Height;
      end
      else
      begin
        NewWidth := MediaPlayer.DisplayRect.Right;
        NewHeight := MediaPlayer.DisplayRect.Bottom;
      end;

      MediaPlayer.DisplayRect := Rect(
        (MCIAnzeige.Width - NewWidth) div 2,
        (MCIAnzeige.Height - NewHeight) div 2,
        NewWidth, NewHeight);
    end;
Hintergrund: Wenn man DisplayRect auf (0, 0, 0, 0) setzt, werden die letzten beiden Koordinaten automatisch auf die Videomaße gesetzt. (Falls es kein Video ist, sind sie natürlich auch 0.) Damit hat man die Videomaße und muss nun so rechnen, dass das Verhältnis beibehalten wird. Ich habe es nach der LetterBox-Methode gemacht, d. h. es wird nichts vom Video abgeschnitten, sondern es bleiben evtl. Teile frei, um das Seitenverhältnis zu bewahren.

[edit] Mein Code skaliert nur zu große Videos oder die, die kleiner als die Hälfte sind, da ich das damals so wollte. Wenn du das nicht willst, lass das

Delphi-Quellcode:
if (MediaPlayer.DisplayRect.Right > MCIAnzeige.Width) or
  (MediaPlayer.DisplayRect.Bottom > MCIAnzeige.Height) or
  ((MediaPlayer.DisplayRect.Right * 2 <= MCIAnzeige.Width) and
  (MediaPlayer.DisplayRect.Bottom * 2 <= MCIAnzeige.Height)) then
sowie das dazugehörige else begin..end weg.

[/edit]

Mfg
FAlter

[edit] Letzten Delphi-Tag korrigiert. [/edit]
Felix Alter
  Mit Zitat antworten Zitat
Benutzerbild von f4k3
f4k3

Registriert seit: 15. Aug 2007
Ort: Nürnberg
313 Beiträge
 
Delphi 2007 Architect
 
#5

Re: TMediaPlayer - Video in Vollbild anzeigen

  Alt 8. Mai 2008, 13:43
mhm ... also das verändern der Größe hat schonmal geklappt ...

 MediaPlayer.DisplayRect := Rect(0,0,Screen.Height,Screen.Width); nur hab ich folgendes Problem ... (siehe Vorher_.jpg und dann Nachher._jpg)

Ich seh jetzt ca. die linke obere ecke des Video Bereichs ... der rest passt nicht auf die Form ... das Video wird somit verzerrt ...

In den beiden Anhängen kannst du ja erkenn wie groß dass Video ist ...


Ich hab deine Berechnung nich ganz kapiert ...

woher du NewWidth / NewHeight hast ... eigene Variablen? oder extra funktion?!

Also ich ermittle die Größe des Videos?! und versuche es dann zu vergrößern bis es auf das Display passt?!
Soweit richtig?!

Also müsste ich quasi die Höhe und die Breite des Video's * den Wert um auf meine Screen.Height und Screen.Width (Vollbild) zu kommen?

Sorry dass du dich so dummen Fragen stellen musst ... aber ich tu mir da noch schwer

Danke für deine Hilfe

Gruß f4k3
Miniaturansicht angehängter Grafiken
nachher__117.jpg   vorher__123.jpg  
Sascha
  Mit Zitat antworten Zitat
Benutzerbild von f4k3
f4k3

Registriert seit: 15. Aug 2007
Ort: Nürnberg
313 Beiträge
 
Delphi 2007 Architect
 
#6

Re: TMediaPlayer - Video in Vollbild anzeigen

  Alt 8. Mai 2008, 13:57
Okay

ich hab mich etz mal hingehockt und copy & paste betrieben und bin einigermaßen hinter die logik gestiegen ...

Video wird richtig angezeigt und alles is super

Vielen Dank nochmal für deine Hilfe

Gruß f4k3
Sascha
  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 22:18 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