当使用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
 
                   
                   
                   
                   
                             本文探讨了在使用QT Creater开发过程中,如何根据不同操作系统(Windows与Linux)正确配置MPlayer播放器。针对获取窗口ID的问题,在Windows环境中需要通过reinterpret_cast进行类型转换,而在Linux环境下则直接使用winId()即可。
本文探讨了在使用QT Creater开发过程中,如何根据不同操作系统(Windows与Linux)正确配置MPlayer播放器。针对获取窗口ID的问题,在Windows环境中需要通过reinterpret_cast进行类型转换,而在Linux环境下则直接使用winId()即可。
           
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
              
             
                   1242
					1242
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
            


 
            