我在QML上创建一个视频,导入QtMultimedia 5.8来播放视频 . 它可以很好地播放,但是当我在这个QML文件中导入一些Qt3D库时,它是错误的 .
"error The system cannot find the file specified."
defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer"
它只发生在 Debug mode OS Window7
Release mode in OS window7 没关系 . 我在 Ubuntu with gstreamer 库上试用它,它可以在Debug和Release上很好地运行 .
我gg,有些文章说这是因为Media插件 . 从mingw53_32 / plugins / mediaservice,有4个文件dsengine.dll / dsengined.dll和qtmedia_audioengine.dll / qtmedia_audioengined.dll .
这是QT的错误吗?
- -编辑 - - -
我的项目,我使用MediaPlayer和一些Scene3D项目 . 它可以在Release模式下播放,但不能在Debug模式下播放 . 源代码类似于:
import QtQuick 2.9
import QtQuick.Window 2.2
import QtMultimedia 5.9
import QtQuick.Scene3D 2.0
import Qt3D.Core 2.0 as Qt3D
import Qt3D.Render 2.10 as Qt3DR
import Qt3D.Extras 2.10 as Qt3DE
Item {
visible: true
width: 640
height: 480
// title: qsTr("Hello World")
// Item {
MediaPlayer {
id: mediaplayer
source: "qrc:/example.mp4"
autoPlay: true
}
VideoOutput {
anchors.fill: parent
source: mediaplayer
}
Scene3D{
id: sence1
}
Scene3D{
id: sence2
}
Scene3D{
id: sence3
}
Scene3D{
id: sence4
}
}
.pro文件:
QT += quick 3dcore 3drender 3dinput 3dquick 3dextras 3dquickextras multimedia
CONFIG += c++11
- -更新 - - -
我发现当我用MinGW编译器构建时会发生这种情况 . 当我改为MSVC2015编译器时,它可以很好地发挥作用 . 也许这些编译器中的库有不同之处?