QT使用QMediaPlayer + QVideoWidget播放視訊檔案
阿新 • • 發佈:2018-11-13
QT使用QMediaPlayer + QVideoWidget播放視訊檔案
如需轉載請標明出處:http://blog.csdn.net/itas109
QQ技術交流群:129518033
目錄
文章目錄
環境:
QT版本:5.6.2
開發環境:VS2013
系統版本:windows 7 64bit
前言
我們需要用QT播放視訊,如製作一個視訊播放器等。
1.程式碼實現
1.1 pro新增
QT += multimedia multimediawidgets
1.2 標頭檔案新增
//要包含下面的兩個檔案,必須在.pro檔案中新增 QT += multimedia multimediawidgets #include <QMediaPlayer> #include <QVideoWidget> #include <QMediaPlaylist>
1.3 程式碼實現
QWidget *widget = new QWidget; QVBoxLayout *layout = new QVBoxLayout; QMediaPlayer* player = new QMediaPlayer; QVideoWidget* videoWidget = new QVideoWidget; QMediaPlaylist* playlist=new QMediaPlaylist; videoWidget->setAspectRatioMode(Qt::IgnoreAspectRatio); videoWidget->setFullScreen(true); layout->addWidget(videoWidget); widget->setLayout(layout); playlist->clear(); playlist->addMedia(QUrl::fromLocalFile("C:\\a.mp4")); player->setPlaylist(playlist); QFile file("C:\\a.mp4"); if(!file.open(QIODevice::ReadOnly)) qDebug() << "Could not open file"; player->setVideoOutput(videoWidget); player->setPlaylist(playlist); widget->showFullScreen(); player->play();
2.效果
3.注意事項
3.1 部署
在其他電腦上部署的時候需要注意包含
a.mediaservice plugin
b.QT5MULTIMEDIA.DLL
- QT5NETWORK.DLL
- QT5GUI.DLL
- QT5CORE.DLL
c.QT5MULTIMEDIAWIDGETS.DLL
- QT5MULTIMEDIA.DLL
- QT5WIDGETS.DLL
- QT5GUI.DLL
- QT5CORE.DLL
- QT5OPENGL.DLL
3.2 播放無影象
播放無影象,並報錯:
DirectShowPlayerService::doRender: Unresolved error code 80040266
原因:
Qt 中的多媒體播放,底層是使用DirectShowPlayerService,所以安裝一個DirectShow解碼器,例如LAV Filters,就可以解決執行出錯問題
解決方法:
LAVFilters論壇
LAVFilters下載
Reference:
http://doc.qt.io/qt-5/qtmultimedia-index.html
https://github.com/qyvlik/Flat.qml/issues/4
覺得文章對你有幫助,可以用微信掃描二維碼捐贈給博主,謝謝!
如需轉載請標明出處:http://blog.csdn.net/itas109
QQ技術交流群:129518033