项目中有要在qt中播放视频的要求,这里做下记录
主要修改如下两处
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets multimedia multimediawidgets)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets multimedia multimediawidgets)
target_link_libraries(ProjName PRIVATE
Qt${QT_VERSION_MAJOR}::Widgets
Qt${QT_VERSION_MAJOR}::MultimediaWidgets
)
QVideoWidget *videoWidget = new QVideoWidget(ui->localPlayer);
QMediaPlayer *player = new QMediaPlayer;
player->setMedia(QMediaContent(QUrl(utils.string2Qstring(videoPath))));
player->setVideoOutput(videoWidget);
videoWidget->show();
player->play();
出现报错
DirectShowPlayerService::doRender: Unresolved error code 0x80040266 (IDispatch error #102
Qt 中的多媒体播放,底层是使用DirectShowPlayerService,所以安装一个DirectShow解码器,例如LAV Filters,就可以解决运行出错问题,可以从该处下载
https://github.com/Nevcairiel/LAVFilters/releases