TMediaPlayer Absturz bei Klickerei



  • Hallo,

    ich spiele einen Film über den Mediaplayer ab. Klappt alles bestens. Wenn ich nun auf den Film klicke oder mehrmals klicke, stürzt die Anwendung ab. die Source ist:

    MediaPlayer1->Display = Panel1;

    Ich wollte eigentlich, dass sich über OnClick des Panels ein Browserfenster öffnet, aber OnClick wird nie erreicht (hab es mal getestet).

    Hat jemand eine Idee aus Erfahrung oder soll ich Quellcode posten?

    Danke.

    Gruß Al



  • Keiner ne Idee?

    😕



  • Hi,

    Erst mal keine Idee, weil das ein untypisches Verhalten ist...
    Vielleicht postet du mal bissel Code.

    mfg
    kpeter



  • void __fastcall TForm1::InitVideo()
    {
    try
            {
            TRect r;
            Panel1->Visible = false; 
            MediaPlayer1->DeviceType = dtAutoSelect;
            MediaPlayer1->Display = Panel1;
            MediaPlayer1->FileName = sCFGDir+sFile;
            MediaPlayer1->Open();
            try
                    {
                    float width = MediaPlayer1->DisplayRect.Right;
                    float height = MediaPlayer1->DisplayRect.Bottom;
                    float Proportion = width / height;
                    int   VideoSize = 200;         
    
                    if(width >= height)
                            {
                            r.right = VideoSize;
                            r.bottom = VideoSize/Proportion;
                            }
                    else
                            {
                            r.bottom = VideoSize*Proportion;
                            r.right = VideoSize;
                            }
                    r.left = 0;
                    r.top = 0;
    
                    MediaPlayer1->DisplayRect = r;
                    Panel1->Width = r.right;
                    Panel1->Height = r.bottom;
                    Panel1->Visible = true;
                    MediaPlayer1->Wait = true;
                    MediaPlayer1->Play();
                    }
            __finally
                    {
                    MediaPlayer1->Close();
                    }
            }
    catch (...)
            {
            //return;
            }
    }
    
    void __fastcall TForm1::Panel1Click(TObject *Sender)
    {
    ShellExecute(Handle, "open", "www.xyz.de",NULL,NULL,SW_SHOWDEFAULT);
    }
    
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
    InitVideo();
    }
    


  • Hi Al,

    vermutlich spielst du das Video zu früh ab. In der Programmphase Create
    hat sich das Formular noch nicht aufgebaut. Selbst bei OnShow gehts
    noch nicht.
    Um zu prüfen, ob dein Code sonst läuft, versuche das InitVideo mit einem
    ButtonClick zu starten.

    mfg
    kpeter



  • hi kpeter,

    habe ich schon ausprobiert via buttonclick. ist aber derselbe effekt. lasse ich das video unberührt, spielt es wunderbar ab. nur wenn ich 2,3 mal drauf klicke kommt der absturz und zwar unabhängig, ob ich ein onlickevent auf dem panel habe oder nicht.

    seltsam...

    gruß al


Anmelden zum Antworten