[directShow/c++/winAPI] Video beenden

kickerxy123

Erfahrenes Mitglied
Hallo und frohe Weihnachten euch allen!

Ich habe ein Problem beim Beenden von Videos beim Verwenden von DirectShow und der WinAPI...

Das Video spielt folgendermaßen ab:
C++:
//... Initialisierung und Graph erstellen

pVideoWindow[soundvid_counter]->HideCursor(OATRUE);
pVideoWindow[soundvid_counter]->put_AutoShow(OATRUE);
pVideoWindow[soundvid_counter]->SetWindowPosition(0,0,g_width,g_height);
pVideoWindow[soundvid_counter]->put_WindowStyle(WS_VISIBLE | WS_CHILD);
pVideoWindow[soundvid_counter]->put_Owner((OAHWND)g_hwnd); //Child Fenster von der Hauptanwendung
pMediaControl[soundvid_counter]->Run();
Wenn das Video zu Ende gespielt hat, bleibt es auf dem letzten Frame stehen.
Daher:
C++:
bool fileIsFinished(int soundvidID)
{
REFTIME _duration,_position;
pMediaPosition[soundvidID]->get_Duration(&_duration);
pMediaPosition[soundvidID]->get_CurrentPosition(&_position);

if(_duration==_position) //Ende des Videos / der Musik erreicht!
{
pVideoWindow[soundvidID]->HideCursor(OAFALSE);
pVideoWindow[soundvidID]->put_Visible(OAFALSE);
return true;
}
return false;
}
Die Funktion wird relativ kontinuierlich abgefragt und das Ende des Videos wird auch korrekt erkannt.
Jedoch wird weder der Cursor sichtbar, noch das Video unsichtbar...
Ich habe auch versucht, das darunter liegende Main-Fenster zu reaktivieren (on-top setzen, neuzeichnen etc.)
Daher meine Frage: Wie kann ich das Video beenden(=>ActiveMovie Fenster soll sich am besten ganz schließen)?

Vielen Dank!
kickerxy
 
Zurück