中易网

QT中怎么在一个Widget中添加视频播放的功能,就是一打开这个Widget就自动播放视频?要用什么函数?

答案:3  悬赏:20  
解决时间 2021-01-16 19:47
QT中怎么在一个Widget中添加视频播放的功能,就是一打开这个Widget就自动播放视频?要用什么函数?
最佳答案
Phonon速度很慢,可别怪我,耐心等它蹦出来

#include
#include

class VWidget : public QWidget
{
public:
VWidget (QWidget *parent = 0) : QWidget (parent) {
mediaObject = new Phonon::MediaObject (this);
videoWidget = new Phonon::VideoWidget (this);
Phonon::createPath (mediaObject, videoWidget);
audioOutput = new Phonon::AudioOutput (Phonon::VideoCategory, this);
Phonon::createPath (mediaObject, audioOutput);

mediaObject->setCurrentSource (QString ("R:/temp/release/demo.avi"));
mediaObject->play();
}

private:
Phonon::MediaObject *mediaObject;
Phonon::VideoWidget *videoWidget;
Phonon::AudioOutput *audioOutput;
};

int main (int argc, char *argv[])
{
QApplication app (argc, argv);

VWidget *qWidget = new VWidget;
qWidget->setMinimumSize (640, 480);
qWidget->show();

qApp->processEvents();
return app.exec();
}追问太感谢了,但是没有图像只有声音是怎么回事,而且我播.avi格式的有声音,播.rm或者.rmvb的连声音都没了。追答那是你的系统缺少解码器,我的测试都没问题,avi、rmvb、mp4任何格式都正常

以下两句分别确保自动识别正确的媒体类型和加载系统插件
videoWidget = new Phonon::VideoWidget (this);
Phonon::createPath (mediaObject, videoWidget);

audioOutput = new Phonon::AudioOutput (Phonon::VideoCategory, this);
Phonon::createPath (mediaObject, audioOutput);追问我先后装了两个解码器,最后一个叫win7codecs,但都不行啊,郁闷。缺解码器要怎么解决呢?追答你的播放器能播放的应该都能播放,一般装ffdshow、K-Lite Codec Pack等其他播放器带有的解码器都可以,或者你部署到别的系统运行试试了
全部回答
是的,Qmovie只能播放gif的图片。
你如果想播放视频的话,应该使用VideoPlayer类,这个类是在phonon模块,你可以继承该类,也可以像普通控件一样使用,非常简单,这个类有下面这些方法:
load (),pause (),play (),seek (),setVolume (),stop ()
很容弄明白这些方法是干什么的。。。
不懂再问我吧,祝你好运。。。追问我用QT creator建了一个GUI应用程序,基类选的是QWidget,请问代码该怎么写?就简单到打开这个程序就播放视频,其他的功能先不用。代码应写到那个文件里,还有视频源文件应该放到哪?自己上网学了一下,可是没成功。
我不得不说之前的解答有误导之嫌. 我自己照着之前的代码做,也是看不到视频. 为避免后来者在这上面纠结. 回答一下. 问题在于没有把videoWidget 放到合适的位置上,而不是解码器的问题.
下面这段代码是可以工作的.
#include
#include
#include
#include
#include
#include
#include
#include
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget *mainWidget = new QWidget;
mainWidget->setWindowTitle("Prds Trial Player");
mainWidget->resize(640,480);
Phonon::MediaObject *mediaObject= new Phonon::MediaObject;
QUrl url = "C:\\Users\\Public\\Videos\\Sample Videos\\Wildlife.wmv";
mediaObject->setCurrentSource(url);
Phonon::VideoWidget *videoWidget = new Phonon::VideoWidget;
Phonon::createPath(mediaObject, videoWidget);
videoWidget->setAspectRatio(Phonon::VideoWidget::AspectRatioAuto);
Phonon::AudioOutput *audioOutput = new Phonon::AudioOutput(Phonon::VideoCategory);
Phonon::createPath(mediaObject, audioOutput);
QLabel *label = new QLabel("Volume: ");
Phonon::VolumeSlider *volumeSlider = new Phonon::VolumeSlider;
volumeSlider->setAudioOutput(audioOutput);
volumeSlider->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
Phonon::SeekSlider *seekSlider = new Phonon::SeekSlider;
seekSlider->setMediaObject(mediaObject);
QHBoxLayout *hLayout = new QHBoxLayout;
hLayout->addWidget(label);
hLayout->addWidget(volumeSlider);
hLayout->addStretch();
QVBoxLayout *vLayout = new QVBoxLayout;
vLayout->addWidget(videoWidget);
vLayout->addWidget(seekSlider);
vLayout->addLayout(hLayout);
mainWidget->setLayout(vLayout);
mainWidget->show();
mediaObject->play();
return app.exec();
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
某次考古活动中发掘出古代刻石一方,上有刻文
嘉乐士壁纸地址好找么,我有些事要过去
半夏怎样区分?
是郑智熏好看还是宋承宪
算命的说我存不住钱怎么办?求算命的帮我其他
为什么孙文当年不让袁世凯弄总统制而是用议会
空调是把外面的空气吸进来,还是只在室内循环
用荷香叶擦脸有什么好处
暗黑破坏神2每次打开都要很长时间
c丫ma手表是什么牌子
你见过最假,最差劲的图片处理(PS)是什么样
bigbang sober歌词谐音
1994年退伍军人补贴
我今天买了一个w|fi电视猫,请问怎么使用
劲字五笔怎么打
推荐资讯
一月八号是什么星座!
FOB下,我们是进口商,后期怎么办理保险。比
stm32 flash可以不擦除写入么
种植金 线莲何时为最佳时间
买美规车还是中规车或者欧规车?
安悦溪的QQ是多少
进口零食 少量的 可以吗
建英玉器怎么去啊,有事要去办理
求个这张图配的情头
我有一个水牛角好多年啦不知做g手串好不好
财务制度对公务招待费报销有规定吗
玛瑙的自然色和人工上色怎么区分
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?