Неверное / неопределенное свойство медиаобъекта камеры QML

Я пытаюсь создать элемент QML, определенный в C ++, который будет перехватывать фреймы из QML Camera прежде чем они отображаются VideoOutput, Что-то вроде:

Window {
Camera {
id: camera
}

MyFrameinterceptor {
id: myprocessing
source: camera.mediaObject
}

VideoOutput {
id: feedback
source: myprocessing
}
}

В соответствии с этот комментарий, свойство mediaObject из Camera элемент может быть использован для доступа к C ++ части Camera,

Однако, когда я пытаюсь получить доступ к mediaObject из QML, например, с

Text {
text: qsTr(camera.mediaObject.objectName)
}

Я получаю TypeError: Cannot read property 'objectName' of undefined
Когда я пытаюсь использовать свойство camera.mediaObject из C ++, я получаю похожие сообщения, позволяющие мне думать, что mediaObject не определен, неинициализирован или не существует.

Я новичок в Qt, поэтому я могу пропустить что-то действительно глупое, например, запустить камеру или что-то еще … Но у меня та же проблема с MediaPlayer вещь

Как получить доступ к медиаобъекту камеры QML из C ++?

2

Решение

Я тоже несколько раз споткнулся, решил это так:

QObject * obj = rootview->rootObject()->findChild<QObject *>("camera");
QVariant mediaObject = obj->property("mediaObject");
QCamera * camera = qvariant_cast<QCamera *>(mediaObject);

Затем я использую QVideoRendererControl назначить подкласс QAbstractVideoSurface обрабатывать кадры.

3

Другие решения


По вопросам рекламы [email protected]