无效/未定义的QML相机的媒体对象属性

Invalid/undefined mediaobject property of QML Camera

本文关键字:媒体 对象 属性 相机 QML 未定义 无效      更新时间:2023-10-16

我试图创建一个QML项目,在c++中定义,这将从一个QML Camera中截取帧,然后由一个VideoOutput显示。比如:

Window {
    Camera {
        id: camera
    }
    MyFrameinterceptor {
        id: myprocessing
        source: camera.mediaObject
    }
    VideoOutput {
        id: feedback
        source: myprocessing
    }
}

根据这个注释,Camera项的mediaObject属性可以用来访问Camera的c++部分。

但是,当我尝试从QML访问mediaObject时,例如使用
Text {
    text: qsTr(camera.mediaObject.objectName)
}

我得到一个TypeError: Cannot read property 'objectName' of undefined当我想用相机的时候。mediaObject属性,我得到类似的消息,让我认为mediaObject是未定义的,未初始化或不存在。

我是Qt的新手,所以我可能会错过一些非常愚蠢的事情,比如启动相机或其他不…但我有同样的问题与MediaPlayer项目

如何从c++中访问QML相机的mediaObject ?

我也遇到过几次这样的问题,我是这样解决的:

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

我然后使用QVideoRendererControl来分配QAbstractVideoSurface的子类来处理帧。