0
我一直試圖在Qt5.2中用QMediaPlayer和QVideoWidget播放視頻格式* .wmv,* .mp4。我只是遵循expample,這裏是我的代碼:使用QMediaPlayer,Qt5.2中的QVideoWidget播放視頻
mp =new QMediaPlayer(this);
vw = new QVideoWidget(this);
QMediaPlaylist* playlist = new QMediaPlaylist(this);
playlist->addMedia(QUrl::fromLocalFile("C:/Users/Public/Videos/Sample Videos/Wildlife.wmv"));
playlist->setCurrentIndex(1);
mp->setPlaylist(playlist);
mp->setVideoOutput(vw);
setGeometry(100,100,400,500);
vw->setGeometry(0,0,300,400);
show();
play();
我已經安裝了K-Lite編解碼器。當我使用Media Player Classic或Win Media Player播放相同的文件時,文件播放良好,Lca和FFmpeg圖標顯示在紙盒中。
但是在Qt 5.2中,我無法看到任何視頻文件。只有wmv文件,我才能聽到音頻(不可見)。
我在網上搜索了很多,每個人都指向我認爲我有的編解碼器。 K-Lite編解碼器的配置是否重要?我使用了默認的編解碼器。我也用Win媒體基礎搭建了Qt。所以我不知道這裏出了什麼問題。平臺是win7 32. 任何幫助表示讚賞。如果我必須閱讀任何文章或任何文章或博客,請告訴我。謝謝。
我將視頻卡更換爲支持OpenGL 3.3的Nvidia GeForce 210。我以前的只支持OpenGl 1.1。現在我可以正常播放所有wmv視頻,但對於任何其他格式,我收到以下錯誤:DirectShowPlayerService :: doRender:未解決的錯誤代碼80040266. VFW_E_NO_TRANSPORT由於不支持相同的傳輸,因此引腳無法連接。 例如,上游過濾器可能需要IAsyncReader接口,而下游過濾器需要IMemInputPin。更換視頻卡之後,我是否必須構建directshow或Qt5? – sky