VideoCore proporciona soporte para flujos de video a una pantalla de
la ventana. Se adopta el enfoque de que una pantalla puede tener una o
más secuencias de vídeo, cada uno de ellos tiene una o más secuencias
de vídeo independientes que pasar. Escrito en C++, y creado con la idea
de ayudar a los desarrolladores.
El
código fuente esta bajo licencia LGPL. Esto quiere decir que
es
completamente libre para utilizarlo en aplicaciones comerciales y no
comerciales.
Ejemplo utilizando la clase
implementación
Este ejemplo muestra como puedes utilizar la clase
implementación.
// Incluimos el archivo de cabecera principal, que contiene // la clase implementacion. #include <ceVideoCoreImpl.h> #include <cstdio> // Por printf.
// Utilizamos el namespace "ce" (CorEngine) por defecto (Opcional). using namespace ce;
// Creamos nuestra propia clase manager, heredando la clase implementacion. class CVideoManager : public IVideoManagerImpl<CVideoManager> { public:
inline short Example(void) const { // Recupera la información de la ventana (Opcional). SWindowInfo *WindowInfo = this -> Video -> GetWindowInfo();
// Este metodo crea una ventana (Opcional, Pero es requerido para poder // obtener la información del video). if (this -> Video -> CreateVideoWindow() == 0) return 1;
// Identificadores de videos. unsigned int video1; unsigned int video2;
// Carga un archivo de video. video1 = this -> Video -> LoadVideoFile("video1.mpg", CE_VIDEO_NOPLAYBAR | CE_VIDEO_NOMENU | CE_VIDEO_AUTOPLAY);
video2 = this -> Video -> LoadVideoFile("video2.mpg", CE_VIDEO_HIDE);
// Inicializa el bucle principal de la ventana. this -> Video -> InitVideoWindow();
// Libera el video (Opcional). this -> Video -> ReleaseVideo(video1);
// Con este metodo hacemos visible al video. this -> Video -> ShowVideo(video2, TRUE);
// Actualizamos el bucle principal de la ventana. while (this -> Video -> UpdateVideoWindow()) continue;
// Liberamos todos los videos (Opcional). this -> Video -> ReleaseAllVideos();
// Este metodo desregistra una ventana, Liberando la memoria // requerida para la ventana (Opcional). this -> Video -> UnregisterVideoWindow();
int main(int argc, char **argv) { // Creamos una instancia de nuestra clase manager. const CVideoManager Video;
// Verificamos la integridad de la clase manager (Opcional). if (Video -> VerifyVideoManager() == 0) return 1;
return Video -> Example(); }
Nota : Utiliza la clase
implementación, porque es mas fácil.
Ejemplo utilizando las clases de interfaces
Este ejemplo muestra como puedes utilizar las
clases de interfaces.
// Incluimos el archivo de cabecera principal, que contiene la clase interfaz. #include <ceVideoCore.h> #include <cstdio> // Por printf.
// Utilizamos el namespace "ce" (CorEngine) por defecto (Opcional). using namespace ce;
int main(int argc, char **argv) { // Creamos una instancia de la clase manager. IVideoManager *Video = CreateVideoManager(); if (Video == NULL) return 1;
// Recupera la información de la ventana (Opcional). SWindowInfo *WindowInfo = Video -> GetWindowInfo();
// Este metodo crea una ventana (Opcional, Pero es requerido para poder // obtener la información del video). if (Video -> CreateVideoWindow() == 0) { // Liberamos la instancia de la clase manager. DestroyVideoManager(&Video); return 1; }
// Identificadores de videos. unsigned int video1; unsigned int video2;
// Carga un archivo de video. video1 = Video -> LoadVideoFile("video1.mpg", CE_VIDEO_NOPLAYBAR | CE_VIDEO_NOMENU | CE_VIDEO_AUTOPLAY);
video2 = Video -> LoadVideoFile("video2.mpg", CE_VIDEO_HIDE);
// Inicializa el bucle principal de la ventana. Video -> InitVideoWindow();
// Libera el video (Opcional). Video -> ReleaseVideo(video1);
// Con este metodo hacemos visible al video. Video -> ShowVideo(video2, TRUE);
// Actualizamos el bucle principal de la ventana. while (Video -> UpdateVideoWindow()) continue;
// Liberamos todos los videos (Opcional). Video -> ReleaseAllVideos();
// Este metodo desregistra una ventana, Liberando la memoria // requerida para la ventana (Opcional). Video -> UnregisterVideoWindow();
// Liberamos la instancia de la clase manager. DestroyVideoManager(&Video);
return 0; }
Hasta aquí ya sabes lo básico
para su utilización,
para mas información, recomiendo leer la documentación
de la API. Para
soporte o ante cualquier duda o sugerencia, no dudes en contactarme.