Qt 使用QMediaPlayer + QVideoWidget播放視頻文件


環境:
QT版本:5.6.2
開發環境:VS2013
系統版本:windows 7 64bit


前言

我們需要用QT播放視頻,如制作一個視頻播放器等。

1.代碼實現

1.1 pro添加

QT += multimedia multimediawidgets

1.2 頭文件添加

1 //要包含下面的兩個文件,必須在.pro文件中添加 QT += multimedia multimediawidgets
2 #include <QMediaPlayer>
3 #include <QVideoWidget>
4 #include <QMediaPlaylist>

1.3 代碼實現

 1     QWidget *widget = new QWidget;  2     QVBoxLayout *layout = new QVBoxLayout;  3 
 4     QMediaPlayer* player = new QMediaPlayer;  5     QVideoWidget* videoWidget = new QVideoWidget;  6     QMediaPlaylist* playlist=new QMediaPlaylist;  7 
 8     videoWidget->setAspectRatioMode(Qt::IgnoreAspectRatio);  9     videoWidget->setFullScreen(true); 10 
11     layout->addWidget(videoWidget); 12     widget->setLayout(layout); 13 
14     playlist->clear(); 15     playlist->addMedia(QUrl::fromLocalFile("C:\\a.mp4")); 16     player->setPlaylist(playlist); 17 
18     QFile file("C:\\a.mp4"); 19     if(!file.open(QIODevice::ReadOnly)) 20         qDebug() << "Could not open file"; 21 
22     player->setVideoOutput(videoWidget); 23     player->setPlaylist(playlist); 24 
25     widget->showFullScreen(); 26     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,就可以解決運行出錯問題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM