Russian Qt Forum

Qt => Qt Embedded => Тема начата: meandnano от Сентябрь 02, 2011, 11:50



Название: Meego 1.2 Harmattan и QCamera
Отправлено: meandnano от Сентябрь 02, 2011, 11:50
Доброго времени суток!

Есть ли возможность работать с камерой на Nokia N9 с помощью QCamera из QtMobility или необходимо использовать другие методы?

Тестовая программа, которая правильно работает на Nokia C6-01 (Symbian Anna), не выводит в N9 изображение с камеры на viewfinder (QVideoWidget или QGraphicsVideoItem). Используемая версия QtMobility - 1.1.3, Qt - 4.7.3.

Пирвожу куски код тестового приложения, в результате выполнения на C6 получаем окно, в которое выводится изображение с камеры, на 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();
}

<...>

Есть идеи?


Название: Re: Meego 1.2 Harmattan и QCamera
Отправлено: pastor от Сентябрь 02, 2011, 12:59
Как вариант обновить Qt Mobility до 1.2


Название: Re: Meego 1.2 Harmattan и QCamera
Отправлено: meandnano от Сентябрь 05, 2011, 09:43
Нашел решениe, версия QtMobility здесь ни при чем.
В Megoo есть аналог Симбиановских "capabilities" - aegis security tokens. То есть для работы с камерой нужен такой токен (разрешение).
В проект добавляется файл имя_пакета.aegis со следующим содержанием:
Код
XML
<aegis>
  <request>
       <credential name="GRP::video"/>
       <credential name="GRP::pulse-access"/>
       <for path="/opt/testmobile/bin/testmobile"/>
  </request>
</aegis>
 

В <for path> необходимо указывать полный путь к бинарнику вашего приложения. Ну и, разумеется, для другого функционала (не камеры) параметр "name" тэга <credential> должен содержать другое значение.

Подробнее можно почитать здесь (http://harmattan-dev.nokia.com/docs/library/html/guide/html/Developer_Library_Developing_for_Harmattan_Harmattan_security_Security_guide_Harmattan_APIs_that_require_credentials.html).