最近在用QT3来包装mplayer,设计成自己需要的简易播放器!
系统环境: 虚拟机下fedora13
mplayer源码包: MPlayer-1.0rc4.tar.bz2
我用QProcess类来启动mplayer播放指定目录的2.avi文件到指定窗口 有玩过的人应该知道 该命令为 mplayer -quiet -slave -wid 0x4000005 /home/yang/2.avi
可以看到在指定窗口播放视频成功, 但问题出来了, 竟然过滤器失效了!以为是指定到指定窗口后窗口不能接收过滤事件,所以改为播放mp3,不用输出到指定窗口,但是点击主窗口还是没反应。。。 主要代码如下~
C/C++ code
CMyPlayer::CMyPlayer(QWidget *parent,const char *name)
: QWidget(parent,name, Qt::WStyle_Customize | Qt::WStyle_NoBorder)
{
currentFile = 0;
SetupUi();
installEventFilter(this); //为主窗口安装事件过滤器
playNextFile();
}
void CMyPlayer::PlayAudio(QString fileName)
{
playProcess->clearArguments();
playProcess->addArgument(MPLAYER_PATH);
playProcess->addArgument(fileName); //这里播放的是mp3文件,所以没有用slave模式以及-wid指定窗口,直接用mplayer播放文件
playProcess->start(); //主要是这句,只要加上这句过滤器就失效了,按道理后台在播放mp3前台鼠标点击窗口应该没冲突,可以得到点击事件的呀
}
虽然这贴在CSDN上一模一样,但不要怪我发重复贴, 只想多些贴子 让多些人看到 快点解决问题而已~ 帮帮忙啊。。。