在Windows系统上使用QMediaPlayer,并在Linux上编译代码

using QMediaPlayer on Windows system with code compiled on Linux

本文关键字:Linux 并在 编译 代码 Windows 系统 QMediaPlayer      更新时间:2023-10-16

我的一个项目是用Qt5/c++编写的,使用QMediaPlayer类读取音频文件。只要我在Linux上运行这个项目,一切都很好。由于我想在Windows上运行我的程序,我使用MXE来编译我的代码,并为Windows系统创建一个二进制文件。

除了QMediaPlayer类的这个问题之外,这个程序看起来还可以。当程序在Windows系统上运行时,我读到以下消息:

defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer".

通过谷歌搜索,我了解到QMediaPlayer使用了几个插件,每个平台上都不同。在Windows上,WMF插件是微软独有的,DirectShow似乎毫无用处;其他人建议使用其他外部插件,如portaudio、SdlAudio或OpenAI。

我该如何解决这个问题?

我发现了这个问题,知道如何解决它:根据这个线程,只需在.pro文件中添加以下行:

QTPLUGIN += dsengine qtmedia_audioengine