我正在尝试在 Blackberry Cascades 10 Beta 3 SDK(C++、QT、QML)中打开相机,然后在打开后对其进行响应。我正在使用 Dev Alpha Simulator,并且在尝试打开它后,我不断收到错误“上下文:无法找到 ID 为 ### 的目标节点”(连续多次,其中 ### 是某个数字)。这可能是因为我没有可供模拟器使用的实际相机(我正在尝试查看是否可以为相机编写部分功能 - 然后在我实际上有一个可供黑莓使用的相机时实现全部功能) ,还是我必须在 QML 文档中添加一些内容?
这是导致此问题的代码:
(在构造函数中):
cameraContainer_ = root->findChild<Container*>("cameraContainer);
(在打开相机的代码中):
bb::cascades::multimedia::Camera camera(cameraContainer_);
connect(&camera, SIGNAL(cameraOpened()), this, SLOT(onCameraOpened());
camera.open()
qDebug() << "opening camera..."
(在相机打开后的插槽中):
void MyCamera::onCameraOpened(){
qDebug() << "camera has opened";
disconnect(&camera, SIGNAL(cameraOpened()), this, SLOT(onCameraOpened());
}
(插槽在类声明中定义,类派生自 QObject 并使用 QObject 宏):
#ifndef MY_CAMERA_H
#define MY_CAMERA_H
#include <QObject>
class MyCamera : public QObject {
Q_OBJECT
//... inbetween lines of code
private slots:
void onCameraOpened();
//...
}
#endif
我在控制台中得到的只是:
正在打开相机... 上下文:找不到 ID 为 644 的目标节点 上下文:找不到 ID 为 644 的目标节点 上下文:找不到 ID 为 644 的目标节点 上下文:找不到 ID 为 644 的目标节点 上下文:找不到id 为 644 的目标节点 上下文:找不到 id 为 644 的目标节点 上下文:找不到 id 为 644 的目标节点 上下文:找不到 id 为 644 的目标节点 上下文:找不到 id 为 644 的目标节点 上下文:找不到id 为 644 的目标节点 上下文:找不到 id 为 644 的目标节点 上下文:找不到 id 为 644 的目标节点 上下文:找不到 id 为 644 的目标节点 上下文:找不到 id 为 644 的目标节点 上下文:找不到id 为 644 的目标节点上下文:找不到 id 为 644 的目标节点上下文:找不到 ID 为 644 的目标节点上下文: 找不到 ID 为 644 的目标节点上下文: 找不到 ID 为 644 的目标节点上下文: 找不到 ID 为 644 的目标节点上下文: 找不到 ID 为 644 的目标节点上下文:找不到 ID 为 644 的目标节点上下文: 找不到 ID 为 644 的目标节点上下文: 找不到 ID 为 644 的目标节点上下文: 找不到 ID 为 644 的目标节点上下文: 找不到 ID 为 644 的目标节点上下文:找不到 ID 为 644 的目标节点上下文: 找不到 ID 为 644 的目标节点上下文: 找不到 ID 为 644 的目标节点上下文: 找不到 ID 为 644 的目标节点上下文: 找不到 ID 为 644 的目标节点上下文:找不到 ID 为 644 的目标节点上下文: 找不到 ID 为 644 的目标节点上下文:找不到 id 为 644 的目标节点
(有时该数字与 644 不同,但通常非常接近该数字)。
我还在 bar-descriptor.xml 下添加了这些行
<permission system="true">run_native</permission>
他们是:
<permission>use_camera</permission>
<permission>access_shared</permission>
<permission>record_audio</permission>
如果有人知道如何解决这个问题 - 将不胜感激。