当使用QT Creater 编写 基于mplayer播放器的时候。使用winId();获取窗口ID总是编译不过。
args << "-wid" << QString::number(renderTarget->winId());因为这种写法是用在LINUX环境下,而在window 环境下运行的QT Creater当然是没办法编译的,所以想编译上面的程序只能再Linux环境下编译。
下面是一个从网上看到一个程序。明显在window环境下,和Linux环境下所编译的程序段是不一样的。
#ifdef Q_WS_WIN
// reinterpret_cast<qlonglong> obligatoire, winId() ne se laissant pas convertir gentiment ;)
args << "-wid" << QString::number(reinterpret_cast<qlonglong>(renderTarget->winId()));
args << "-vo" << "directx:noaccel";
#else
// Sur linux, aucun driver n'a été nécessaire et pas de manip pour Wid :)
args << "-wid" << QString::number(renderTarget->winId());
log->append("Video output driver may not be necessary for your platform. \
Check: http://www.mplayerhq.hu/DOCS/man/en/mplayer.1.html \
at the VIDEO OUTPUT DRIVERS section.");
#endif