Migrando a un nuevo Blog

¡Hola Devs! Cambiamos de site. Cambiamos de aire. Cambiamos de blog. Nos mudamos a  https://joseferrer.tk/blog/ Los esperamos! ¡Saludos devs!

Reproducción De Videos En XNA

Con la salida del XNA GS 3.1 (Link AQUI) no podía faltar un ejemplo para probar la ejecución de video. Como es algo bastante simple (lo admito, me sorprendió. Esperaba algo mas complejo) no hace falta un video tutorial. Así que comencemos.

Lo primero que vamos a hacer es crear un nuevo proyecto de XNA (OJO, el 3.1 tiene que ser. para descargarlo clic AQUI). Bien, una vez creado vamos a declarar las variables que vamos a necesitar para la ejecución del video como se ve en la imagen a continuación.

image

VideoPlayer, esta instancia de la clase nos va a permitir ejecutar, parar, pausar, obtener una textura especifica, etc.

Video, nos va a permitir cargar el contenido de nuestro video. tiene propiedades como duración, frames por segundo, alto, ancho, tipo de sonido, etc.

y por ultimo la textura que la vamos a utilizar para obtener la imagen del video a mostrar.
Bien, una vez declaradas las variables vamos a inicializar el VideoPlayer y cargar el contenido. (TEST es el nombre de ejemplo, lo tendrían que reemplazar con el nombre del video que quieran cargar)

image

Una vez que hicimos esto, vamos a hacer la lógica que va a manejar la ejecución del video. Por ej.: cuando presionemos la tecla A que ejecute el video y cuando pulsemos la tecla SPACE se pare la ejecución.
Luego lo que tendríamos que hacer es verificar si se esta ejecutando el video. si es así, obtener la textura a mostrar.
Entonces el código quedaría así.

image

Como verán el código es bastante simple y no exige demasiado, solo plantear la lógica correcta.
Espero que haya sido útil y para descargar el código completo, pueden descargarlo de
AQUI

Comentarios

Anónimo ha dicho que…
Hola, coloque el codigo pero me marca error, cuando presiona la tecla "A" para iniciar el video. tengo el XNA 3.1
Unknown ha dicho que…
mmmm que raro... me pasarias que error te da, porque a mi me funca de 10. Capaz que tiene que ver con la ruta donde se encuentra el video.
Pasame si tenes el error.
Saludos!
Anónimo ha dicho que…
Hola Jose, el error que me manda es "InvalidOperationException" es en la linea de codigo "TestVideoPlayer.Play(TestVideo);", la primera ves que presiono "A" no hace nada el programa, no muestra el video (uso el video de tu ejemplo) y despues vuelvo a presionar "A" y me manda este error. Ojala puedas ayudarme, gracias y saludos!
Unknown ha dicho que…
Anonimo, como estas?
Mira proba descargarlo de nuevo al proyecto. actualice el link de descarga.
En mi maquina anda joya, probe de varias formas y funciona. Por lo general esa exception es cuando quiere por ej. levantar un archivo con un nombre pero este tiene otro nombre. verifica que el nombre del archivo este bien.
Fijate si descargandolo de nuevo funciona. Como para ir descartando posibilidades.
Saludos!
Gustavo ha dicho que…
Hola Jose, estuve depurando el programa y cuando presiono la tecla "A" entra al codigo donde se supone debe activar el video, pero cuando entra a la funcion DRAW, el medio de reproduccion esta en "Stopped", asi que nunca entra al IF, si vuelvo a presionar "A" entonces me manda el error que te habia comentado. Por cierto ya baje el codigo otra vez, pero me marca un error (el anterior marcaba el mismo) me dice que el archivo Game1.cs no pertenece al programa que estoy ejecutando, asi que lo que hice fue crear un nuevo proyecto y pase el codigo alli. Gracias por tu tiempo, en verdad es muy valioso para mi. Saludos!
Gustavo ha dicho que…
Hola Jose, en la Pc en donde estoy desarrollando, instale un programa que se llama "RealPlayer", este programilla daño mi Windows MediaPlayer, ya no reproduce los videos. Entonces me imagine que ese es el problema por el cual no se ejecuta el video en el XNA. Lo que hice fue probar en una laptop que tengo sin el RealPlayer y funciono tu ejemplo sin problemas, asi que ese era el problema. Saludos!
Unknown ha dicho que…
Buenisimo Gustavo!
Ya me estaba preocupando... ;)
Cualquier duda avisame

Entradas populares de este blog

Crear Una Clase A Partir De Un XML