2

Nokia N9(Meego 1.2 Harmattan)のQCameraクラスでカメラを操作する方法はありますか、それとも別のカメラを使用する必要がありますか?

これが私の問題です。NokiaC6-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オブジェクトが作成されて表示されたら、NokiaC6-01ではシンプルなビューファインダーを、NokiaN9では黒い画面を表示します。

何か案は?

4

1 に答える 1

4

解決策を見つけました!セキュリティの問題でした。私が見つけたように、MeegoにはSymbianの「機能」に類似したものがあります。これは AEGIS セキュリティ トークンと呼ばれます。したがって、カメラ (またはその他のもの) を操作する許可を要求するには、プロジェクトの "qtc_packaging/debian_harmattan" フォルダーに your_application_name.agis ファイルを追加する必要があります。私の場合、このファイルは次のもので構成されていました。

<aegis>
    <request>
        <credential name="GRP::video"/>
        <credential name="GRP::pulse-access"/>
        <for path="/opt/testmobile/bin/testmobile"/>
   </request>
</aegis>

そのため、権限は「credential」タグの「name」プロパティで定義され、「for path」タグはこれらの権限を実行するパッケージを定義します。

詳細はこちら

于 2011-09-05T06:52:06.733 に答える