我在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编译器时,它可以很好地发挥作用 . 也许这些编译器中的库有不同之处?