我想要播放一个音频文件(经过测试的.wav、.mp3、.flac),使用QMediaPlayer在带有Yocto系统的嵌入式iMX8设备上使用控制台应用程序。我正在测试来自Qt医生的代码。它在PC上工作很好,但在嵌入式设备上就不行了。它坚持使用Media Status: QMediaPlayer::LoadingMedia,没有任何错误。我猜这是系统里的东西。从控制台播放媒体,可以使用aplay命令。什么能成为理由?我怎么才能修好它?
QMediaPlayer *player = new QMediaPlayer;
QObject::connect(player, &QMediaPlayer::positionChanged, [=](qint64 position){
qDebug()<< "Current position: " << position;
});
QObject::connect(player, &QMediaPlayer::mediaStatusChanged, [=](QMediaPlayer::MediaStatus status){
qDebug()<< "Media Status: " << status;
});
player->setMedia(QUrl::fromLocalFile("/home/root/test.wav"));
player->setVolume(100);
player->play();我尝试过在我的平台上调试Qt插件,但是我没有发现任何问题。
QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/mediaservice" ...
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/mediaservice/libgstaudiodecoder.so"
Found metadata in lib /usr/lib/plugins/mediaservice/libgstaudiodecoder.so, metadata=
{
"IID": "org.qt-project.qt.mediaserviceproviderfactory/5.0",
"MetaData": {
"Keys": [
"gstreameraudiodecode"
],
"Services": [
"org.qt-project.qt.audiodecode"
]
},
"archreq": 0,
"className": "QGstreamerAudioDecoderServicePlugin",
"debug": false,
"version": 331520
}
Got keys from plugin meta data ("gstreameraudiodecode")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/mediaservice/libgstcamerabin.so"
Found metadata in lib /usr/lib/plugins/mediaservice/libgstcamerabin.so, metadata=
{
"IID": "org.qt-project.qt.mediaserviceproviderfactory/5.0",
"MetaData": {
"Keys": [
"gstreamercamerabin"
],
"Services": [
"org.qt-project.qt.camera"
]
},
"archreq": 0,
"className": "CameraBinServicePlugin",
"debug": false,
"version": 331520
}
Got keys from plugin meta data ("gstreamercamerabin")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/mediaservice/libgstmediacapture.so"
Found metadata in lib /usr/lib/plugins/mediaservice/libgstmediacapture.so, metadata=
{
"IID": "org.qt-project.qt.mediaserviceproviderfactory/5.0",
"MetaData": {
"Keys": [
"gstreamermediacapture"
],
"Services": [
"org.qt-project.qt.audiosource"
]
},
"archreq": 0,
"className": "QGstreamerCaptureServicePlugin",
"debug": false,
"version": 331520
}
Got keys from plugin meta data ("gstreamermediacapture")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/mediaservice/libgstmediaplayer.so"
Found metadata in lib /usr/lib/plugins/mediaservice/libgstmediaplayer.so, metadata=
{
"IID": "org.qt-project.qt.mediaserviceproviderfactory/5.0",
"MetaData": {
"Keys": [
"gstreamermediaplayer"
],
"Services": [
"org.qt-project.qt.mediaplayer"
]
},
"archreq": 0,
"className": "QGstreamerPlayerServicePlugin",
"debug": false,
"version": 331520
}
Got keys from plugin meta data ("gstreamermediaplayer")
QFactoryLoader::QFactoryLoader() checking directory path "/opt/platform-benchmark_app/bin/mediaservice" ...
loaded library "/usr/lib/plugins/mediaservice/libgstmediaplayer.so"
QMediaPluginLoader: loaded plugins for key "org.qt-project.qt.mediaplayer" : ("gstreamermediaplayer")
QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/resourcepolicy" ...
QFactoryLoader::QFactoryLoader() checking directory path "/opt/platform-benchmark_app/bin/resourcepolicy" ...发布于 2022-08-12 06:46:16
问题在于系统映像和缺少gStreer1.0数据包。它单独工作,但它不适用于Qt多媒体。解决方案是在fsl映像食谱中添加数据包组、gstreamer1.0-full、gStreamer1.0、和。
CORE_IMAGE_EXTRA_INSTALL += " \
...
packagegroup-fsl-gstreamer1.0 \
packagegroup-fsl-gstreamer1.0-full \
...
"https://stackoverflow.com/questions/73320023
复制相似问题