Просить QtMultimedia использовать другой приемник видео, используя QML - PullRequest
0 голосов
/ 04 сентября 2018

Я пытаюсь разработать приложение, подобное медиаплееру, во встроенной системе на базе 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")

Любые указания приветствуются.

...