avi per mci



  • Ich wollt das hier mal für die FAQ vorschlagen..

    Hab mal etwas rumgebastelt und nen mini-avi-player mit mci gebastelt.
    der kann nichts weiter als abspielen und anhalten, ist aber dafür schön einzubauen.

    zu includieren sind - wie in geeky's mp3-player die windows.h und mmsystem.h

    die Lib winmm.lib wird auch benötigt:

    int myPlayAvi (HWND hWnd, char *filename, int loop)
    {
     char cmd[300];
      wsprintf(cmd, "open \"%s\" alias mympeg type MPEGVideo style child", filename);
      if (mciSendString(cmd, 0, 0, 0) != 0)
      { 
        MessageBox(NULL, "MCI-Error: Kann Datei nicht öffnen!", "Fehler", 0);
        return -1;
      }
    
      wsprintf(cmd, "window mympeg handle %lu", hWnd);
      if (mciSendString(cmd, 0, 0, 0) != 0)
      { 
        wsprintf(cmd, "MCI-Error: Kann window handle %ld nicht setzen", hWnd);
        MessageBox(NULL, cmd, "Fehler", 0);
        return -1;
      }
    
      wsprintf(cmd, "play mympeg from 0");
      if (loop) wsprintf(cmd, "%s repeat", cmd);
      if (mciSendString(cmd, 0, 0, 0) != 0)
      { 
        MessageBox(NULL, "MCI-Error: Kann Datei nicht absielen!", "Fehler", 0);
        return -1;
      }
      return 0;
    }
    
    int myStopAvi (void)
    {
    char cmd[300];
      wsprintf(cmd, "close mympeg");
      if (mciSendString(cmd, 0, 0, 0) != 0)
      { 
        MessageBox(NULL, "MCI-Error: Kann Datei nicht schließen!", "Fehler", 0);
        return -1;
      }
      return 0;
    }
    

    Sämtliche Codecs, die installiert sind, kann er theoretisch abspielen - sogar mit sound 😉

    Als handle könnt ihr das Hauptfenster oder was auch immer eingeben. Für Spiele ist evtl noch interessant, dass man bei play auch den Parameter Fullscreen in den cmd-string setzen kann.

    Laut M$ funktioniert das unter Win ab 95, bzw. NT aufwärts.

    cYa
    DjR


Anmelden zum Antworten