JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=76953bb2e267be385188806a14337634Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

AVI´sS abspielen

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Grafik und Sound
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
RayJunx
JLI'ler


Alter: 43
Anmeldedatum: 16.01.2006
Beiträge: 130
Wohnort: Bayern
Medaillen: Keine

BeitragVerfasst am: 17.01.2006, 17:19    Titel: AVI´sS abspielen Antworten mit Zitat

Wie Spiele ich Avis ab?
habe bisher nur den code anbei gefunden.
Der Ruckelt sich aber nen Ast ab. Vorallem wenn man hochauflösende
Videos so 1280-1024 bis 1600x1200 abspielt ( Was mit winamp
oder anderen playern übrigens kein problem ist ).
Außerdem habe ich vor das in einem spiel zu verwenden in dem
ich mit direct x sprites darstelle, zwar nicht gleichzeitig aber
in direkter abfolge ( video - spielgrafik element - video usw )
kann ich das irgendwie umsetzen? gibt es direktX avi abspiel
funktionen?

grüße,
und schonmal danke für alle infos

Rayjunx

Code:

#include <windows.h>
#pragma comment(lib,"winmm.lib")  //für MSV C++ 

int main()
{

  mciSendString("open file.mp3", NULL, 0, NULL);
  mciSendString("play file.mp3 wait", NULL, 0, NULL);
  mciSendString("close file.mp3", NULL, 0, NULL);
 
  return 0;
}

_________________
Just a Freak
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
PeaceKiller
JLI Master


Alter: 35
Anmeldedatum: 28.11.2002
Beiträge: 970

Medaillen: Keine

BeitragVerfasst am: 17.01.2006, 17:22    Titel: Antworten mit Zitat

DirectShow kann dir wahrscheinlich helfen.
_________________
»If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 17.01.2006, 17:49    Titel: Antworten mit Zitat

PeaceKiller
DirectShow wird wegoptimiert von Microsoft da es ein Reinfall war.

RayJunx
Ich würde nicht mit der MCI Kommandoumgebung arbeiten sondern mit den MCI Kommandoobjekten. Weitere Infos findest Du dazu in der MSDN.

Nebenbei: Irgendwie habe ich momentan das Gefühl Du fragst sehr viel, was Deinen Wissenstand noch nicht entsprechen dürfte.
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
PeaceKiller
JLI Master


Alter: 35
Anmeldedatum: 28.11.2002
Beiträge: 970

Medaillen: Keine

BeitragVerfasst am: 17.01.2006, 18:04    Titel: Antworten mit Zitat

Was kann man dann von DX benützten um z.B. Videos auf Texturen zu klatschen?
_________________
»If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 17.01.2006, 18:08    Titel: Antworten mit Zitat

PeaceKiller
MCI, DirectDraw. Nebenbei: Microsoft empfiehlt keine Videos auf Texturen zu "Klatschen", da Texturen dafür nicht konzipiert sind. Man kann sie dafür modifizieren, aber Fakt ist: Sie wurden dafür von Grund auf nie ausgelegt. und selbst Microsoft musste daraus erbittert lernen.
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
RayJunx
JLI'ler


Alter: 43
Anmeldedatum: 16.01.2006
Beiträge: 130
Wohnort: Bayern
Medaillen: Keine

BeitragVerfasst am: 08.03.2006, 16:17    Titel: MCI Kommandoobjekten? Antworten mit Zitat

MCI Kommandoobjekte? whats that...
kann mir jemand nur nen groben overview geben um was es da geht?
ich versteh erstmal bahnhoff leider

gruß und danke
rayjunx
_________________
Just a Freak
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Dragon
Super JLI'ler


Alter: 38
Anmeldedatum: 24.05.2004
Beiträge: 340
Wohnort: Sachsen
Medaillen: Keine

BeitragVerfasst am: 08.03.2006, 16:26    Titel: Re: MCI Kommandoobjekten? Antworten mit Zitat

RayJunx hat Folgendes geschrieben:
MCI Kommandoobjekte? whats that...
kann mir jemand nur nen groben overview geben um was es da geht?
ich versteh erstmal bahnhoff leider

gruß und danke
rayjunx

Das könnte dich interessieren: http://www.c-plusplus.de/forum/viewtopic-var-p-is-284792.html

Nebenbei, die Mehrzahl von AVI ist nicht AVI´s sondern AVIs. Du schreibst doch auch nicht CD´s oder Teddy´s sondern CDs oder Teddys (obwohl im englischen die Mehrzahl Teddies ist ). *klugscheiß*
_________________
Nur wenn man ein Ziel sieht, kann man es auch treffen.
___________
Mein Leben, Freunde und die Spieleentwicklung
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 08.03.2006, 17:01    Titel: Antworten mit Zitat

Bei MCI-Kommandoobjekten benutzt du nicht eine "konsolenartige" Parameterübergabe, sondern sprichst die Elemente direkt an. So kannst du z.B. ein Video in einem vorher erstellten Fenster abspielen. Natürlich werden hier wie bei der Win32API auch laufend Nachrichten gesendet, die du abfangen und auswerten kannst.
Die MSDN sollte auch weiterhelfen Wink
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
RayJunx
JLI'ler


Alter: 43
Anmeldedatum: 16.01.2006
Beiträge: 130
Wohnort: Bayern
Medaillen: Keine

BeitragVerfasst am: 13.03.2006, 19:06    Titel: weitere anhaltspunkte Antworten mit Zitat

Hi all,

habe eben den link weiter oben getestet und dort ein gutes beispiel gefunden. ich konnte das beispiel auch verwenden nur habe ich dann
ein problem. hier meine beschreibung des problemes das ich so auch
mal an den autor des code-beitrages weiter unten gemailt habe,
hoffe jemand weiß vielleicht um eine einfache lösung:

Bräuchte deine hilfe wegen „avi per mci „ abspielen
Du hattest da mal was in einem forum gepostet und der code geht auch,
aber sobald ich mein spiel vom fenster in den vollbildmodus schalte schmirgelt
er mir ab.

Hier noch mal der link von deinem beispiel:
http://www.c-plusplus.de/forum/viewtopic-var-t-is-39401.html

ich greife in meinem prog mit directdraw auf das bild zu, wenn ich
diese aufrufe aber nicht verwende die ich in eine art: begin und endszene
funktion gekapselt habe, dann kann ich zwischendurch schön ein video
abspielen mit deiner funktion. Aber wie gesagt nur solange ich das
windowsfenster meines programmes NICHT im vollbildmodus starte.

Ändere ich den entsprechenden parameter hingehend um das er im
Vollbildmodus startet geht das abspielen des videos nicht, und auch
Das Stoppen führt nicht in mein prog. Zurück.

Das Spielchen das ich programmiert habe ist im prinzip aufgebaut
Wie die Sprite-übungsbeispiele aus dem JLI Buch, weiß nicht ob dir
Das was sagt.
Ich poste dieses problem auch auf der entsprechenden seite...


Hier der code:

Code:
 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:
C/C++ Code:
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;
}
C/C++ Code:
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;
}
C/C++ Code:
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

_________________
Just a Freak
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
fast hawk
Senior JLI'ler



Anmeldedatum: 15.07.2005
Beiträge: 237
Wohnort: Freiburg
Medaillen: Keine

BeitragVerfasst am: 13.03.2006, 19:21    Titel: Antworten mit Zitat

Söllt man das nicht für die faq mit wchar_t machen weil das Beispiel hab ich auch genommen und so funzt es mit VC++ 2005 nicht und die die noch normal char proggen sollen es halt sich umschreiben aber die faq ist doch eher für anfänger da und du söllt man nicht mit nicht mehr zukunftssicherem zeug fütter(nichts gegen ASCII aber Asien ist halt auch noch da!!).

mfg fast_hawk
_________________
Jetziges Projekt: The Ring War
Status: 40%
-----------------------------------
Nicht weil es schwer ist, wagen wir es nicht, sondern weil wir es nicht wagen, ist es schwer.
--
Lucius Annaeus Seneca (4)
röm. Philosoph, Dramatiker und Staatsmann
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Dragon
Super JLI'ler


Alter: 38
Anmeldedatum: 24.05.2004
Beiträge: 340
Wohnort: Sachsen
Medaillen: Keine

BeitragVerfasst am: 13.03.2006, 19:39    Titel: Antworten mit Zitat

Ich weiß nicht wann du das abspielst (vieleicht als intro?). Du solltest vieleicht Direct3D erst nachdem das Video angezeigt wurde initialisieren.
_________________
Nur wenn man ein Ziel sieht, kann man es auch treffen.
___________
Mein Leben, Freunde und die Spieleentwicklung
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jones
Senior JLI'ler


Alter: 33
Anmeldedatum: 03.03.2005
Beiträge: 208
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 13.03.2006, 20:20    Titel: Antworten mit Zitat

fast hawk
man kann beim VS 2005 einstellen ob man Unicode benutzen möchte oder nicht Wink
Project -> Properties -> General -> Character Set
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
RayJunx
JLI'ler


Alter: 43
Anmeldedatum: 16.01.2006
Beiträge: 130
Wohnort: Bayern
Medaillen: Keine

BeitragVerfasst am: 13.03.2006, 20:49    Titel: nicht nur intro Antworten mit Zitat

leider nicht "nur" als intro,
ich will also immer wieder zwischendurch sequenzen zeigen.
wie mach ich das im vollbildmodus wenn ich primär das
selbe vollbild für die spielgrafik anzapfe?
gruß
rayjunx
_________________
Just a Freak
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 13.03.2006, 21:08    Titel: Antworten mit Zitat

Ahoi, schau mal hier ob es dsa ist was du suchst:

http://www.programmersheaven.com/2/FAQ-DIRECTX-Play-Video-File(MPEG-and-AVI)
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Grafik und Sound Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum