Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Problema reproducir video

Iniciado por ars1614, 06 de Abril de 2009, 12:44:47 PM

« anterior - próximo »

ars1614

Hola buenas, soy un estudiante de ing industrial.

Quiero introducir fragmentos d video en un videojuego que tengo que hacer como proyecto en una asignatura de c++.

E problema esque he intentado usar la libreria ayudandome de los ejemplos y todo pero no consigue hacer que me link el programa dando unos errores muy raros.

Podrian ayudarme con un programa sencillisimo para que abriera un archivo, lo reprodujese y lo cerrase, junto con todos los archivos que tendria que tener en la carpeta del proyecto.

uso Microsoft Visual Studio 2006 c++.

Muchas Gracias

Vicente

Cita de: ars1614 en 06 de Abril de 2009, 12:44:47 PM
Hola buenas, soy un estudiante de ing industrial.

Quiero introducir fragmentos d video en un videojuego que tengo que hacer como proyecto en una asignatura de c++.

E problema esque he intentado usar la libreria ayudandome de los ejemplos y todo pero no consigue hacer que me link el programa dando unos errores muy raros.

Podrian ayudarme con un programa sencillisimo para que abriera un archivo, lo reprodujese y lo cerrase, junto con todos los archivos que tendria que tener en la carpeta del proyecto.

uso Microsoft Visual Studio 2006 c++.

Muchas Gracias

Un par de cosas: este foro está para resolver dudas, y para resolver dudas hace falta que des más información. Pon tu código, que librerías usas, etc etc y la gente le puede dar un vistazo para intentar buscar el error. Pero no esperes una respuesta cuando haces una pregunta tan vaga (y menos que alguien te escriba un programa por las buenas).

Segundo: Microsoft Visual Studio 2006 C++?!?!?! Me da a mi que eso no existe

Un saludo,

Vicente

ars1614

Ok lo siento.

Me he descargado el CRM32Pro SDK, y viene con un sistema de ayuda y con ajemplos basicos para su utilizacion.
Lo unico que necesito de esta libreria es la reproduccion de video, por lo que me he puesto a intentar comprender unicamente el ejemplo que viene de video, el numer 5. Os pego el codigo:

// ---Includes---
#include "CRM32Pro.h"

// ---Defines---
#define EXAMPLE_VERSION "Example 5: Video player"
#define GFX_RESOURCE "data/gfx.dpf"     // DPF with graphic resources

// ---Prototypes---
void ChangeFX(int kPressed);
void PrintHelp(char *sErrMsg = NULL);

// -------------MAIN FUNCTION----------------
int main(int argc,char *argv[])
{
   Uint8 done = 0;

   // -Log system initialize- 
   ILogSystem.Init("VideoPlayer.log",LOG_CONSOLE | LOG_FILE,LOG_NORMAL,EXAMPLE_VERSION);

   // -Print help without any arguments-
   if(argc < 2)
   {
   PrintHelp();
       ILogSystem.Msg(LOG_LOW," · [LOG] - We need the .mpg video to play, try with \"VideoPlayer.exe your.mpg\"\n\n");
   return 1;
   }

   // -CRM32Pro and SDL initialize-
   if(CRM32Pro.Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER) < 0)
   {
      ILogSystem.Msg(LOG_NORMAL," · [LOG] - Couldn´t initialize CRM32Pro: %s\n",SDL_GetError());
      return 1;
   }

   // -Desired config-
   CRM32Pro.Config.Title = EXAMPLE_VERSION;
   CRM32Pro.Config.Icon = IImage->Load(GFX_RESOURCE,"icono");

   // -Graphics system initialize- 
   if(!CRM32Pro.SetVideoMode())
   {
      CRM32Pro.Quit();
      return 1;
   }

   // -Play MPEG-
   IVideo->SetPosition(VIDEO_PLAY_CENTER,VIDEO_PLAY_CENTER);
   IVideo->SetFunction(ChangeFX);
   IVideo->PlayMPEG(argv[1],1);

   // -Exiting..-
   ILogSystem.Msg(LOG_NORMAL,"\n · [INFO]: end of execution.\n");
   CRM32Pro.VideoInfo();
   CRM32Pro.Quit();
   return 0;
}

// Function to be called when a MPEG frame will be updated.
void ChangeFX(int kPressed)
{
   static int  fx = FXSCREEN_NULL;
   if(kPressed == SDLK_LEFT)
   {
      if(fx > 0) fx--;
      IVideo->SetFX(fx);
   }
   else if(kPressed == SDLK_RIGHT)
   {
      if(fx < FXSCREEN_BLUE) fx++;
      IVideo->SetFX(fx);
   }
}

// --------------------Help STUFF------------------------
// -Print help-
void PrintHelp(char *sErrMsg)
{
printf("-----------------------------------------------------------\n");
printf("                 CRM32Pro SDK - HelpScreen\n                  %s\n",EXAMPLE_VERSION);
    printf("-----------------------------------------------------------\n\n");
printf(" Use:\n");
printf("   -  'VideoPlayer your_video.mpg' to play the video.\n\n");
printf(" During the playback, you can use next keys:\n");
printf(" [ESCAPE] to abort and exit.\n");
printf(" [RIGHT CURSOR] to select the next FX effect.\n");
printf(" [LEFT CURSOR] to select the previous FX effect.\n");
if(sErrMsg != NULL) printf("%s",sErrMsg);
else printf("\n");
puts("Press [ENTER] key to continue.");
getchar();
}


He intentado correr ese codigo que ya viene hecho pero me da fallos y no m linka.

He intentado usdar unicamente la funcion IVideo->PlayMPEG(argv[1],1); pero no consigo nada, segun el archivo de ayuda se utilizaria:
char CRM32Pro_IVideo::PlayMPEG  ( char *  file, 
  char  bSound = 1, 
  char  bFilter = VIDEO_FILTER_NULL   



PD Respecto al programa, utilizao el Visual C++ 6.0 dentro de la suite Visual Studio.

A ver si asi está todo correcto, si no, lo siento, decirme que mas datos os puedo facilitar para que me ayudeis.

Muchas Gracias.

alicesmile

Si más adelante quieres permitir que la cámara se abra entonces basta con que hagas algo a lo geomipmapping teniendo varias versiones de cada mesh (aunque coserlas es jodido).






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.