La documentacion para hacer programas que toquen videos de tipo .mov no es NADA amigable, por lo que decidi hacer este peque~o tutorial respecto a como se puede lograr esto.
Qt posee una clase llamada QMovie,con la cual se pueden mostar aniamciones sencillas que no cuentan con sonido ( lo cual estaba perfecto para lo que yo queria hacer) En resumen QMovie permite leer y cargar una aniamcion simple, como una animacion de tipo .GIF. Por lo cual si lograramos convertir nuestras aniamciones en formato .MOV a .GIF nuestro problema estaria resulto. Y bien, gracias a Google, encontre esta peque~a applicacion que justamente lleva esto acabo: http://www.geovid.com/VidGIF
Y ya con nuestro video convertido en .GIF el codigo para hacer una ventanita que toque nuestro video es muy sencillo:
#include qtgui qapplication
#include qwidget
#include qhboxlayout
#include qlabel
#include qmovie
#include qpushbutton
#include qslider
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget *win=new QWidget();
QHBoxLayout *lay=new QHBoxLayout();
QPushButton *play=new QPushButton("PLAY");
QPushButton *stop=new QPushButton("STOP");
QLabel *label=new QLabel;
QMovie *movie = new QMovie("Resources/musica.GIF");
movie->start();
label->setMovie(movie);
QObject::connect(play,SIGNAL(clicked()),movie,SLOT(start()));
QObject::connect(stop,SIGNAL(clicked()),movie,SLOT(stop()));
lay->addWidget(label);
lay->addWidget(play);
lay->addWidget(stop);
win->setLayout(lay);
win->show();
return a.exec();
}
Basicamente estoy cargando la pelicula, la agrego a una etiqueta la cual despues es agregada al widget, tambien agrego dos botones, los cuales sirven para detenerla y tocarla y finalmente presento al usuario la ventanita.
Esta es una manera sencilla de correr en QT peliculas de tipo .mov, aunque solo es valido si no nos interesa el audio que tiene la pelicula, para cosas mas complicadas que involucran audio es necesario checar otras clases que proporciona qt.
Los dejo con la ventanita que se crea, asi como con una imagen de la pelicula que esta tocando:
vspace=10 width="400" height="135">