TMediaPlayer Programm friert beim abspielen einer Videos ein
-
Hi!!!
Ich habe folgenden Code um ein Video abzuspielen:MediaPlayer1->FileName="video.avi"; TRect r; MediaPlayer1->DeviceType = dtAutoSelect; MediaPlayer1->Display = Form1; MediaPlayer1->Open(); try { float width = MediaPlayer1->DisplayRect.Right; float height = MediaPlayer1->DisplayRect.Bottom; float Proportion = width / height; int VideoSize = Screen->Width; if(width >= height) { r.right = VideoSize; r.bottom = Screen->Height; } else{ r.bottom = VideoSize * Proportion; r.right = VideoSize; } r.left = 0; r.top = 0; MediaPlayer1 -> DisplayRect = r; MediaPlayer1->Wait = true; MediaPlayer1->Play(); } __finally { MediaPlayer1->Close(); }
Wenn der MediaPlayer jetzt ein Video abspielt, wird kein anderer Code ausgeführt. Ist es möglich, dass ein Video abgespielt wird und gleichzeitig das Programm noch andere Aktionen durchführt???
-
Hi,
warum nimmst du als Display ausgerechnet das Formular?
Klar, dass während des Versuches der Video-Wiedergabe nix geht.
Lege auf dein Form ein Panel als Display.Wenn du nicht weisst, wie gross die Video-Frames sind, gehe in der Datei-Explorer
und mit einem Rechtsklick siehst du unter den Eigenschaften alles.
So gross machst du das Panel (mindestens für 1:1).Edit: Alles was in try/catch steht, kannst du entsorgen...
mfg
Peter
-
Ok ist gelöst... es lag an diser Zeile:
MediaPlayer1->Play();
Aber ich habe eine andere Frage... ich will, dass sich der Mediaplayer wieder schließt nachdem das Video abgespielt wurde. Wie kann ich das machen???
-
Zitat aus der BCB-Hilfe :
Das Ereignis OnNotify wird ausgelöst, wenn die Ausführung einer Methode zur Steuerung des Media-Players beendet ist.
mfg
Peter