tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
1399
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    min min ist offline Mitglied
    Registriert seit
    Dec 2010
    Beiträge
    19
    Hallo,

    Ich will in einem Modalen Fenster eine AVI wiedergeben. Dafür habe ich einen CAnimatedCtrl eingefügt und in DoDataExchange folgendes reingeschrieben

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
        CAnimateCtrl    m_video;
        char cwd[MAX_PATH+1];
        _getcwd(cwd,MAX_PATH); 
        char s [230];
        char asd[50];
        _itoa_s ( (rand() % 2+1), asd, 10 );
        strcpy_s(s,cwd);
        strcat_s(s,"\\res\\");
        strcat_s(s,asd);
        strcat_s(s,".avi");
     
        CString  sat =_T("");
        sat.Format(_T("%s"),s);
        if (m_video.Open(sat))
            m_video.Play(0,-1,-1);

    Eigentlich sollte nun aus dem Ordner "res" der bei der .EXE liegt entweder "1.avi" oder "2.avi". Leider funktioniert etwas bei "m_video.Open(sat)" nicht und ich bekomme beim Ausführen des Programms die Meldung

    debug assertion failed
    ...
    afxcmn.inl
    Line: 619

    Dort steht nun:

    Code :
    1
    2
    3
    
    _AFXCMN_INLINE BOOL CAnimateCtrl::Open(LPCTSTR lpszName)
        { ASSERT(::IsWindow(m_hWnd)); return (BOOL)::SendMessage(m_hWnd, ACM_OPEN,
            (WPARAM) ::AfxFindResourceHandle(lpszName, _T("AVI")), (LPARAM)lpszName); }

    Könnte jemand mir vielleicht sagen, was ich ändern muss? Auch würde ich mich über Verbesserungen des sonstigen Codes freuen.

    Danke im Voraus.
     

  2. #2
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Hallo,

    wird das CAnimateCtrl auch irgendwo erzeugt ( m_video.Create( ... ); )? Die Assertion sagt nämlich aus, dass zu dem Control kein Fenster existiert.

    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

  3. #3
    min min ist offline Mitglied
    Registriert seit
    Dec 2010
    Beiträge
    19
    Jetzt habe ich
    Code :
    1
    2
    3
    4
    5
    
        LPVOID pParam;
        pParam = pParent;
        CWnd* pParentWnd = (CWnd*) pParam;
        CAnimateCtrl    m_video;
        m_video.Create(WS_CHILD|WS_VISIBLE|ACS_CENTER,CRect(10,10,100,100), pParentWnd, 1);

    am Anfang hinzugefügt, aber was brauche ich für pParam. Er meckert mir, dass ich pParam nicht initialisiert habe. Was fehlt also?
     

  4. #4
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Also, was du da mit pParam veranstaltest, ist mir schleierhaft. Wenn du den Code innerhalb deines modalen Dialogs aufrufst, kannst du es so schreiben:
    Code cpp:
    1
    
    m_video.Create(WS_CHILD|WS_VISIBLE|ACS_CENTER,CRect(10,10,100,100), this, 1);
    Übrigens solltest du die Deklaration ( CAnimateCtrl m_video; ) im Header deines Dialogs und die obige Create-Methode bei OnInitDialog() aufrufen.

    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

  5. #5
    min min ist offline Mitglied
    Registriert seit
    Dec 2010
    Beiträge
    19
    Gut ich habe ein bisschen probiert und habe es zum laufen gebracht, aber mit den Einschränkungen werden meine Videos zu groß und müssen noch seperat mit Ton versehen werden.

    Nun wollte ich fragen was mit der "MCIWnd Window Class" auf sich hat und was ich bruche um eine einfache Avi abzuspielen.

    Da ich mich noch nicht ganz in die Materie eingearbeitet habe, bzw. meistens nicht weiß was ich mache (das kommt später (learning by doing)) habe ich jetzt versucht das Beispiel zum laufen zu bringen, aber leider ohne Erfolg.

    Könnte mir vielleicht jemand sagen, wohin die Zeilen müssen und welche Werte ich anpassen muss. Mir geht es jetzt um eine ganz einfache MFC-Anwendung ohne modalen Dialog.

    Danke im Voraus.
     

  6. #6
    min min ist offline Mitglied
    Registriert seit
    Dec 2010
    Beiträge
    19
    Ich habe nochmal gegoogelt und etwas (fast ganz unten) gefunden. Nun bekomme ich beim Starten des Videos über einen Button in einem neuen Fenster die Fehlermeldung:

    Code :
    1
    2
    
    MCI-Fehler:
    Der Gerätetreiber ist nicht bereit.

    Der Code ist (fast) der gleiche wie im Forum.

    Fehlt mir eine Initialisierung von der MCI-Klasse, -Treiber?
    Geändert von min (13.03.11 um 20:21 Uhr)
     

Ähnliche Themen

  1. NSV wiedergabe ?
    Von djCalypso im Forum VisualStudio & MFC
    Antworten: 3
    Letzter Beitrag: 17.10.06, 00:13
  2. MP3 Wiedergabe
    Von Stephan Boettcher im Forum Visual Basic 6.0
    Antworten: 5
    Letzter Beitrag: 07.12.05, 15:13
  3. DVB-T Wiedergabe
    Von metalgear im Forum Videoschnitt, Videotechnik & -produktion
    Antworten: 1
    Letzter Beitrag: 05.11.05, 12:55
  4. Musik wiedergabe
    Von Stephan Boettcher im Forum Visual Basic 6.0
    Antworten: 13
    Letzter Beitrag: 06.04.05, 11:46
  5. zufällige wiedergabe
    Von Chri$ im Forum C/C++
    Antworten: 3
    Letzter Beitrag: 25.04.04, 14:21