use*_*733 3 c++ qt qml qt5 qtmultimedia
我正在尝试创建一个用 C++ 定义的 QML 项,它会在 QML 中的帧Camera由VideoOutput. 就像是:
Window {
Camera {
id: camera
}
MyFrameinterceptor {
id: myprocessing
source: camera.mediaObject
}
VideoOutput {
id: feedback
source: myprocessing
}
}
Run Code Online (Sandbox Code Playgroud)
根据此注释,项目的mediaObject 属性Camera可用于访问Camera.
但是,当我尝试从 QML 访问 mediaObject 时,例如
Text {
text: qsTr(camera.mediaObject.objectName)
}
Run Code Online (Sandbox Code Playgroud)
当我TypeError: Cannot read property 'objectName' of undefined
尝试使用 C++ 中的camera.mediaObject 属性时,我收到类似的消息,让我认为 mediaObject 未定义、未初始化或不存在。
我是 Qt 的新手,所以我可能会错过一些非常愚蠢的东西,比如启动相机或其他什么......但我对一个MediaPlayer项目有同样的问题
如何从 C++ 访问 QML Camera 的 mediaObject?
我也遇到过几次这个问题,我是这样解决的:
QObject * obj = rootview->rootObject()->findChild<QObject *>("camera");
QVariant mediaObject = obj->property("mediaObject");
QCamera * camera = qvariant_cast<QCamera *>(mediaObject);
Run Code Online (Sandbox Code Playgroud)
然后我使用 aQVideoRendererControl来分配 的子类QAbstractVideoSurface来处理帧。