Video abspielen



  • Würde gerne ein Video innerhalb meines Dialogs wiedergeben, leider musste ich festestellen, dass nur ein ganz bestimmter Typ von ".avi" unterstützt wird. Ich habe aber ein anderes Format (auch ".avi"). Gibt es eine Möglichkeit, das Ding abzuspielen? Notfalls hätte ich da auch noch ein ".mpg" rumliegen.
    mfg Thomas



  • also ich würde notfalls halt ein popup vom Typ CHtml machen, in dem kannste dann mit navigate2 zu deinem multimediafile linken. Das schöne ist, wenn du eine Verknüpfung mit einem Programm auf bestimmtem Datentyp hast, kannst du das auch direkt in das Prog linken lassen ohne großen aufwand einfach nur ein Flag mitschicken



  • @Polofreak
    😮 Ach du gütiger. Das nenne ich mal... naja sagen wir ein bischen umständlich;)

    Was du brauchst ist DirectShow.



  • Das klingt wirklich interessant Polo 🙂
    Du hast nicht zufällig ein Codeschnippsel rumliegen? Wenn nicht, ist auch nicht schlimm.
    Liebe Grüße,
    ~Zanerva
    [EDIT] Hm... da war ich wohl 29 sec. zu langsam.*g* [Edit]



  • da brauchst quasi kein Codeschnipsel!
    Einfach nen Dialog anlegen dem eine Klasse vom Typ CHtmlView zuordnen und dann nur noch in der OnInit vom neuen Dialog

    CString ganzerPfad = "D:\\test\\XXX.avi";
    
    	Navigate2(_T(ganzerPfad),NULL,NULL);
    


  • Blöde Frage, aber wie kann ich einen solchen Dialog starten? Ich habe einen neuen Dialog hinzugefügt, dann mit dem Klassenassistenten vererbt. In meinem Hauptdialog habe ich in der OnInit dann den Start. Wie kann ich dort aber den Dialog starten?

    cMeineVererbteKlasse dlg(was_muss_hier_rein?);
    dlg.DoModal();
    

    mfg Thomas



  • öhm wieso willst du nach dlg überhaupt klammern also normalerweise kannste die einfach weglassen, welche Methode verwendest du denn nun??



  • Polofreak schrieb:

    ...welche Methode verwendest du denn nun??

    was meinst du damit? Im allgemeinen rufe ich die Dialoge wie follgt auf:

    cMeineVererbteKlasse dlg(IDD_DIALOG1);
    dlg.DoModal();
    


  • mit methode hatte ich mich sehr missverständlich ausgedrückt ich wollte wissen ob du ein CHtmlView gemacht hast oder DirectShow (was ich nicht verstehe, liegt aber vermutlich daran weil ich mich nciht richtig damit beschäftigt habe!)



  • Jo, DirectShow ist am Anfang nicht ganz so einfach (wenn auch noch eine der leichteren DirectX Schnittstellen). Und wenn man wirklich in die tiefe gehen will (was ich mir dann doch erspart habe) wirds schon ziemlich komplex mit den ganzen Filtern und dem Zeugs.

    Allerdings erledigen sich, wenn man sich mal eingearbeitet hat, gleich mehrere Fragen für die Windows programmierung aka:

    - Wie kann ich ein Video abspielen?
    - Wie kann ich Hintergrundmusik (MIDI/WAV/MP3...) abspielen?
    - Wie kann ich das eingabebild einer analogen aufnahmequelle anzeigen?
    - Wie kann ich von einer analogen aufnahmequelle aufnehmen?



  • DirectShow ist es nicht, müsste also CHtmlView sein.



  • wenn du meine Variante mit dem CHtmlView genommen hast, dann solltest du nicht doModal machen, da es ein VIEW ist und kein Dialog! Wenn du mehrere Views hast und du willst zwischen denen hin und her switchen dann schau dir das hier an. Wenn du damit nicht klar kommst, geb ich dir auch für alles komplett nochmal ne Erklärung aber versuch es erst mal so! 😃



  • Wie ist das eigentlich mit der mci? Oder ging die nur für WinAPI, ne, das kann nicht... benutz doch die mci... die kann alles abspielen...sogar avis erstellen...



  • Polofreak schrieb:

    wenn du meine Variante mit dem CHtmlView genommen hast, dann solltest du nicht doModal machen, da es ein VIEW ist und kein Dialog!

    Ja ich verwende deine Variante mit CHtmlView, aber:
    - ich habe eine Dialogfeld basierende Anwendung (kein SDI)
    - ich will nicht zwischen den beiden Dialogen umschalten, der Film soll einfach nur parallel zu meiner Anwendung laufen.

    Den Film habe ich jetzt auch zum laufen gebracht, leider weiss ich noch nicht, wie ich den Fokus auf dem Hauptdialog belassen kann, den FilmDialog aber nach Ende des Films wieder automatisch schliessen kann?

    Den "FilmDialog" kann ich mit DoModal() aufrufen:

    cMeineVererbteKlasse FilmDLG(GetWindow(IDD_MEIN_HAUPTDIALOG));
    FilmDLG.DoModal();
    

    mfg Thomas


Anmelden zum Antworten