QML相机的无效/未定义mediaobject属性

3

我正在尝试创建一个QML项,它在C ++中定义,在由VideoOutput显示之前从QML Camera 拦截帧。 类似于:

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。当我试图从C++使用camera.mediaObject属性时,我收到类似的消息,让我认为mediaObject未定义、未初始化或不存在。
由于我对Qt不太熟悉,可能会错过一些非常愚蠢的东西,比如启动相机或其他问题...但我在MediaPlayer项目中也遇到了同样的问题。
我应该怎样才能从C++访问QML相机的mediaObject呢?
1个回答

5
我也遇到了几次这个问题,我是这样解决的:
QObject * obj = rootview->rootObject()->findChild<QObject *>("camera");
QVariant mediaObject = obj->property("mediaObject");
QCamera * camera = qvariant_cast<QCamera *>(mediaObject);

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接