我有一个基于Qt5.4的程序和一些图像处理.我使用QCameramy videoSurface(派生自QAbstractVideoSurface)来获取VideoFrames.它在Windows上运行良好.
但现在我需要我的应用程序的Android版本.我发现QCamera在Android上不起作用.但我看到QML Camera示例在Android上运行没有任何问题.
所以我决定用QML重写我的应用程序.主要问题:我无法在C++中访问QML Camera表面.
void myVideoOutput::setSource(QObject *source)
{
qDebug() << Q_FUNC_INFO << source;
if (source == m_source.data())
return;
m_source = source;
if (m_source) {
const QMetaObject *metaObject = m_source.data()->metaObject();
QStringList properties;
for(int i = metaObject->propertyOffset(); i < metaObject >propertyCount(); ++i)
properties << QString::fromLatin1(metaObject->property(i).name());
qDebug() << properties;
}
.....
emit sourceChanged();
}
Run Code Online (Sandbox Code Playgroud)
此代码提供对属性的访问.但我无法以这种方式访问videoSurface(使用QCamera我可以做到).我想知道QML Camera是如何工作的?它是基于QCamera?我看QCamera *m_camera在QDeclarativeCamera...
所以我有两个问题: