Video abspielen (autostart,endlosschleife,fullscreen?)



  • Moin!

    Und noch ne Frage hab ich:

    Wie kann ich mit BCB5 (Enterprise) ein Video (avi/mpg) wiedergeben, und zwar so, dass es beim Start des Prog sofort automatisch startet und in einer Endlosschleife läuft?
    Und wie kann ich dafür sorgen, dass es im Fullscreenmodus abgespielt wird?

    Eine Menge Sachen, aber ich hoffe, ihr könnt mir helfen!

    Danke im Voraus!



  • TMediaPlayer



  • *g*
    Schon klar, aber wie mach ich das mit dem autostart, endlosschleife, fullscreen?



  • Nimm eine bool-Variable

    bool ok=false;
    

    und einen Timer, Interval auf 10.

    void __fastcall TForm1::Timer1Timer(TObject* Sender)
    {
      if (ok && MediaPlayer1->Position==MediaPlayer1->Length)
      {
        MediaPlayer1->Position=0;
        MediaPlayer1->Play();
      }
    }
    

    Und dann noch der Autostart:

    void __fastcall TForm1::FormCreate(TObject* Sender)
    {
      try
      {
        MediaPlayer1->Play();
        ok=true;
      }
      catch(...)
      {
        ok=false;
      }
    }
    

    Fullscreen weiß ich allerdings auch nicht, da gabs hier aber schonmal nen Beitrag zu, musst mal suchen.



  • Zum TMediaPlayer-Fullscreen geht's hier.
    Da ist noch was vergessen worden: Welche Videodatei soll abgespielt werden? Weise Sie dem TMediaPlayer mit FileName (AnsiString) zu. 🙂

    Ist dir das zu hoch, hab' ich 'ne (etwas primitive) Alternative:

    1. Füge deinem Projekt ein weiteres Formular (TForm unter Datei -> Neues Formular) zu.

    2. Setze seine Eigenschaften "WindowsState" auf "wsMaximized", die "Borderstyle" auf "bsNone" und die "Visible" auf "false".

    3. TMediaPlayer hat die Eigenschaft "Display". Wähle das neue TForm (bspw. Form2) aus. (Wenn's nicht klappt, setze in der TForm ein TPanel ein, dessens "Align" du auf "alClient" stellst. TPanel wird vom TMediaPlayer unterstützt! Nicht vergessen: "Visible" von Form1 auf "true setzen, sonst guckst du in die "Röhre", ausgenommen dei einem Plasmabildschirm... :))

    4. Falls du Abbrechen willst, im Objektinspektor deines neuen TForms gibt es "OnKeyPress". darin Setzt du

    if(Key==VK_ESCAPE) // Wenn ESCAPE-Taste gedrückt wird...
       {
       exit(0); // ...Anwendung beenden.
       }
    

    ein.

    Ist nur ein flüchtiger Vorschlag, aber ebenfalls funktionsfähig. Hab's selbst ausgedacht und in die Tat umgesetzt.

    P.S. Was die Eigenschaft "Visible" von deiner TForm angeht, Sie soll verhindern, dass dein Desktop während des Bearbeiten deines Projektes "zugedeckt" wird. Und auch Hilfreich, falls du irgendwannmal deinen persönlichen MediaPlayer programmieren möchtest.



  • AAAALLLLLLSSOOOOOOOOOOOOOO...

    Das funzt alles super klasse!!! *freu* *hüpf*
    EIne Sache wär da aber noch:
    Das Video, was abzuspielen ist hat ne auflösung von 320x240, mein Bildschirm ein bisschen mehr ;-).

    Wie krieg ich das denn hin, dass er das Video sozusagen auf Bildschirmgrösse skaliert?



  • Ähmmm... aber mittels OnNotify lassen sich Endlosschleifen einfache realisieren... einen Timer für soetwas zu verwenden ist eine etwas brachiale Lösung...



  • Stimmt! Den eigentlichen Punkt zu Fullscreen habe ich total vergessen... !

    Also: Auf deinem neuen Formular deklarierst du global

    TRect Anzeige;
    

    Dann auf dem OnShow-Ereignis deines Formulars schreibst du

    AnzeigeTop=0; //Rahmenhöhe!
    Anzeige.Left=0; //Linke Seite!
    //Hier ist das Beispiel auf ein TPanel bezogen, wobei Align auf alClient gesetzt wurde!
    Anzeige.Right=Panel1->Width; //Rechte Seite!
    Anzeige.Bottom=Panel1->Height;//Boden!
    

Anmelden zum Antworten