我正在尝试在基于iMX 8的嵌入式系统中开发类似于媒体播放器的应用程序。这是一个相当新的嵌入式系统,处于预发行版本,目前支持Qt 5.8.0。对于媒体播放功能,我们必须使用QML + QtMultimedia,后者在较低级别使用GStreamer。主机具有Qt 5.10.1
我已将嵌入式系统配置为使用GStreamer成功播放视频和显示图像。对于这些选项,我使用以下命令:
显示视频:
gst-launch-1.0 playbin uri=file://<video.mp4> video-sink=glimagesink
显示图像:
VSTALPHA=1 gst-launch-1.0 filesrc location=<file.jpeg> ! jpegdec ! imagefreeze ! glimagesink
我不是Qt或QtMultimedia的专家,但我相信能够使用QML正确显示视频和图像,因此我需要以某种方式更改默认视频接收器。我不知道如何从纯QML开始。
如果需要,我还可以修补QtMultimedia源,但我需要正确方向的指导。
当基于QML的应用在没有其他配置的情况下播放视频时,视频会闪烁并大部分显示黑屏, 该应用程序根本无法显示图像。
QML代码如下:
VideoOutput {
id: mp4Output
height: 250
width: 380
anchors.horizontalCenter: parent.horizontalCenter
anchors.bottom: sldrPosition.top
source: audioPlayer
}
//Image
lvBrowseAudio.imageObject = Qt.createQmlObject('import QtQuick 2.0; Image { anchors.horizontalCenter: parent.horizontalCenter;
anchors.verticalCenter: parent.verticalCenter; source: fileURL}', pgAudioPlayer,
"../player/PgAudioPlayer.qml")
非常感谢任何指导。