有没有办法在诺基亚N9 (Mego1.2 Harmattan)的QCamera类中使用相机,或者我应该使用另一个?
这是我的问题:在诺基亚C6-01 (Symbian Anna)上运行良好的简单应用程序在N9上做不到任何有用的事情。
以下是代码片段:
testmobile.pro
<...>
CONFIG += mobility
MOBILITY += multimedia
LIBS += -lQtMultimediaKit
<...>mainwindow.h
class MainWindow : public QWidget
{
Q_OBJECT
<...>
private:
QCamera* camera_;
QGraphicsView *view;
QGraphicsVideoItem *videoItem;
QGraphicsScene *scene;
<...>
}mainwindow.cpp
MainWindow::MainWindow(QWidget *parent)
: QWidget(parent)
{
<...>
camera_ = new QCamera;
view = new QGraphicsView(this);
scene = new QGraphicsScene(view);
videoItem = new QGraphicsVideoItem;
view->setScene(scene);
scene->addItem(videoItem);
QVBoxLayout *lay = new QVBoxLayout(this);
lay->addWidget(view);
this->setLayout(lay);
view->show();
camera_->setViewfinder(videoItem);
camera_->start();
}
<...>因此,在MainWindow对象被构造和显示之后,我们将在诺基亚C6-01上看到一个简单的取景器,在诺基亚N9上看到一个黑屏。
有什么想法吗?
发布于 2011-09-05 14:52:07
我找到解决方案了!这是安全问题。我发现- Meego有类似于Symbian的“能力”。它被称为宙斯盾安全令牌。因此,要申请使用camera (或任何其他)的权限,您应该将your_application_name.agis文件添加到项目的"qtc_packaging/debian_harmattan“文件夹中。在我的例子中,这个文件包括:
<aegis>
<request>
<credential name="GRP::video"/>
<credential name="GRP::pulse-access"/>
<for path="/opt/testmobile/bin/testmobile"/>
</request>
</aegis>因此,权限在"credential“标记的"name”属性中定义,"for path“标记定义用于执行这些权限的包。
欲获知更多信息,请访问here。
https://stackoverflow.com/questions/7281014
复制相似问题