首页 > 解决方案 > QT5.10.1 找不到服务 - Window 上的“org.qt-project.qt.mediaplayer”

问题描述

我在 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"

它只发生在调试模式 OS Window7
操作系统 window7中的发布模式是可以的。我在带有 gstreamer库的 Ubuntu 上试用它,它可以在 Debug 和 Release 上运行良好。
我gg,有文章说是因为媒体插件。从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编译器时,它可以很好地发挥作用。也许这些编译器中的库有什么不同?

标签: qtqml

解决方案


推荐阅读