Viadeo Twitter Google Bookmarks ! Facebook Digg del.icio.us MySpace Yahoo MyWeb Blinklist Netvouz Reddit Simpy StumbleUpon Bookmarks Windows Live Favorites 
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Toutes les fonctions  ·  Vues d'ensemble  · 

QCamera Class Reference

The QCamera class provides interface for system camera devices. More...

 #include <QCamera>

Inherits QMediaObject.

Public Types

enum CaptureMode { CaptureStillImage, CaptureVideo }
enum Error { NoError, CameraError, InvalidRequestError, ServiceMissingError, NotSupportedFeatureError }
enum LockChangeReason { UserRequest, LockAcquired, LockFailed, LockLost, LockTemporaryLost }
enum LockStatus { Unlocked, Searching, Locked }
enum LockType { NoLock, LockExposure, LockWhiteBalance, LockFocus }
flags LockTypes
enum State { UnloadedState, LoadedState, ActiveState }
enum Status { ActiveStatus, StartingStatus, StandbyStatus, LoadedStatus, ..., UnavailableStatus }

Properties

Public Functions

QCamera ( QObject * parent = 0, QMediaServiceProvider * provider = QMediaServiceProvider::defaultServiceProvider() )
QCamera ( const QByteArray & device, QObject * parent = 0 )
~QCamera ()
CaptureMode captureMode () const
Error error () const
QString errorString () const
QCameraExposure * exposure () const
QCameraFocus * focus () const
QCameraImageProcessing * imageProcessing () const
bool isCaptureModeSupported ( CaptureMode mode ) const
QCamera::LockStatus lockStatus () const
QCamera::LockStatus lockStatus ( QCamera::LockType lockType ) const
QCamera::LockTypes requestedLocks () const
void setViewfinder ( QVideoWidget * viewfinder )
void setViewfinder ( QGraphicsVideoItem * viewfinder )
State state () const
Status status () const
QCamera::LockTypes supportedLocks () const

Reimplemented Public Functions

virtual QtMultimediaKit::AvailabilityError availabilityError () const
virtual bool isAvailable () const

Public Slots

void load ()
void searchAndLock ()
void searchAndLock ( QCamera::LockTypes locks )
void setCaptureMode ( QCamera::CaptureMode mode )
void start ()
void stop ()
void unload ()
void unlock ()
void unlock ( QCamera::LockTypes locks )
  • 1 public slot inherited from QObject

Signals

void captureModeChanged ( QCamera::CaptureMode mode )
void error ( QCamera::Error value )
void lockFailed ()
void lockStatusChanged ( QCamera::LockStatus status, QCamera::LockChangeReason reason )
void lockStatusChanged ( QCamera::LockType lock, QCamera::LockStatus status, QCamera::LockChangeReason reason )
void locked ()
void stateChanged ( QCamera::State state )
void statusChanged ( QCamera::Status status )

Static Public Members

QList<QByteArray> availableDevices ()
QString deviceDescription ( const QByteArray & device )
  • 4 static public members inherited from QObject

Additional Inherited Members

  • 1 public variable inherited from QObject
  • 2 protected functions inherited from QMediaObject
  • 7 protected functions inherited from QObject
  • 2 protected variables inherited from QObject

Detailed Description

The QCamera class provides interface for system camera devices.

QCamera can be used with QVideoWidget for viewfinder display, QMediaRecorder for video recording and QCameraImageCapture for image taking.

     QMediaPlayerControl *control = qobject_cast<QMediaPlayerControl *>(
             mediaService->requestControl("com.nokia.Qt.QMediaPlayerControl/1.0"));

Member Type Documentation

enum QCamera::CaptureMode

ConstantValueDescription
QCamera::CaptureStillImage0Camera is configured for still frames capture.
QCamera::CaptureVideo1Camera is configured for video capture.

enum QCamera::Error

ConstantValueDescription
QCamera::NoError0No errors have occurred.
QCamera::CameraError1An error has occurred.
QCamera::InvalidRequestError2System resource doesn't support requested functionality.
QCamera::ServiceMissingError3No camera service available.
QCamera::NotSupportedFeatureError4The feature is not supported.

enum QCamera::LockChangeReason

ConstantValueDescription
QCamera::UserRequest0The lock status changed in result of user request, usually to unlock camera settings.
QCamera::LockAcquired1The lock status successfuly changed to QCamera::Locked.
QCamera::LockFailed2The camera failed to acquire the requested lock in result of autofocus failure, exposure out of supported range, etc.
QCamera::LockLost3The camera is not able to maintain the requested lock any more. Lock status is changed to QCamera::Unlocked.
QCamera::LockTemporaryLost4The lock is lost, but the camera is working hard to reacquire it. This value may be used in continuous focusing mode, when the camera loses the focus, the focus lock state is changed to Qcamera::Searching with LockTemporaryLost reason.

enum QCamera::LockStatus

ConstantValueDescription
QCamera::Unlocked0The application is not interested in camera settings value. The camera may keep this parameter without changes, this is common with camera focus, or adjust exposure and white balance constantly to keep the viewfinder image nice.
QCamera::Searching1The application has requested the camera focus, exposure or white balance lock with QCamera::searchAndLock(). This state indicates the camera is focusing or calculating exposure and white balance.
QCamera::Locked2The camera focus, exposure or white balance is locked. The camera is ready to capture, application may check the exposure parameters.

The locked state usually means the requested parameter stays the same, except of the cases when the parameter is requested to be constantly updated. For example in continuous focusing mode, the focus is considered locked as long and the object is in focus, even while the actual focusing distance may be constantly changing.

enum QCamera::LockType
flags QCamera::LockTypes

ConstantValueDescription
QCamera::NoLock0 
QCamera::LockExposure0x01Lock camera exposure.
QCamera::LockWhiteBalance0x02Lock the white balance.
QCamera::LockFocus0x04Lock camera focus.

The LockTypes type is a typedef for QFlags<LockType>. It stores an OR combination of LockType values.

enum QCamera::State

ConstantValueDescription
QCamera::UnloadedState0The initial camera state, with camera not loaded, the camera capabilities except of supported capture modes are unknown.

While the supported settings are unknown in this state, it's allowed to set the camera capture settings like codec, resolution, or frame rate.

ConstantValueDescription
QCamera::LoadedState1The camera is loaded and ready to be configured.

In the Idle state it's allowed to query camera capabilities, set capture resolution, codecs, etc.

The viewfinder is not active in the loaded state.

ConstantValueDescription
QCamera::ActiveState2In the active state as soon as camera is started the viewfinder displays video frames and the camera is ready for capture.

enum QCamera::Status

ConstantValueDescription
QCamera::ActiveStatus6The camera has been started and can produce data. The viewfinder displays video frames in active state.

Depending on backend, changing some camera settings like capture mode, codecs or resolution in ActiveState may lead to changing the camera status to LoadedStatus and StartingStatus while the settings are applied and back to ActiveStatus when the camera is ready.

ConstantValueDescription
QCamera::StartingStatus5The camera is starting in result of state transition to QCamera::ActiveState. The camera service is not ready to capture yet.
QCamera::StandbyStatus4The camera is in the power saving standby mode. The camera may come to the standby mode after some time of inactivity in the QCamera::LoadedState state.
QCamera::LoadedStatus3The camera is loaded and ready to be configured. This status indicates the camera device is opened and it's possible to query for supported image and video capture settings, like resolution, framerate and codecs.
QCamera::LoadingStatus2The camera device loading in result of state transition from QCamera::UnloadedState to QCamera::LoadedState or QCamera::ActiveState.
QCamera::UnloadedStatus1The initial camera status, with camera not loaded. The camera capabilities including supported capture settings may be unknown.
QCamera::UnavailableStatus0The camera or camera backend is not available.

Property Documentation

captureMode : QCamera::CaptureMode

The type of media (video or still images), the camera is configured to capture.

It's allowed to change capture mode in any camera state, but if the camera is currently active, chaging capture mode is likely to lead to camera status chaged to QCamera::LoadedStatus, QCamera::LoadingStatus, and when the camera is ready to QCamera::ActiveStatus.

Access functions:

CaptureMode captureMode () const
void setCaptureMode ( QCamera::CaptureMode mode )

Notifier signal:

void captureModeChanged ( QCamera::CaptureMode mode )

lockStatus : const QCamera::LockStatus

This property holds the overall status for all the requested camera locks.

Access functions:

QCamera::LockStatus lockStatus () const
QCamera::LockStatus lockStatus ( QCamera::LockType lockType ) const

Notifier signal:

void lockStatusChanged ( QCamera::LockStatus status, QCamera::LockChangeReason reason )
void lockStatusChanged ( QCamera::LockType lock, QCamera::LockStatus status, QCamera::LockChangeReason reason )

state : const QCamera::State

This property holds the current state of the camera object.

Access functions:

State state () const

Notifier signal:

void stateChanged ( QCamera::State state )

status : const QCamera::Status

This property holds the current status of the camera object.

Access functions:

Status status () const

Notifier signal:

void statusChanged ( QCamera::Status status )

Member Function Documentation

QCamera::QCamera ( QObject * parent = 0, QMediaServiceProvider * provider = QMediaServiceProvider::defaultServiceProvider() )

Construct a QCamera from service provider and parent.

QCamera::QCamera ( const QByteArray & device, QObject * parent = 0 )

Construct a QCamera from device name device and parent.

QCamera::~QCamera ()

Destroys the camera object.

QtMultimediaKit::AvailabilityError QCamera::availabilityError () const [virtual]

Reimplemented from QMediaObject::availabilityError().

Returns the error state of the camera service.

QList<QByteArray> QCamera::availableDevices () [static]

Returns a list of camera device's available from the default service provider.

void QCamera::captureModeChanged ( QCamera::CaptureMode mode ) [signal]

Signals the capture mode has changed.

QString QCamera::deviceDescription ( const QByteArray & device ) [static]

Returns the description of the device.

Error QCamera::error () const

Returns the error state of the object.

void QCamera::error ( QCamera::Error value ) [signal]

Signal emitted when error state changes to value.

QString QCamera::errorString () const

Returns a string describing a camera's error state.

QCameraExposure * QCamera::exposure () const

Returns the camera exposure control object.

QCameraFocus * QCamera::focus () const

Returns the camera focus control object.

QCameraImageProcessing * QCamera::imageProcessing () const

Returns the camera image processing control object.

bool QCamera::isAvailable () const [virtual]

Reimplemented from QMediaObject::isAvailable().

Returne true if the camera service is ready to use.

bool QCamera::isCaptureModeSupported ( CaptureMode mode ) const

Returns true if the capture mode is suported.

void QCamera::load () [slot]

Open the camera device. The camera state is changed to QCamera::LoadedStatus.

It's not necessary to explcitly load the camera, unless unless the application have to read the supported camera settings and change the default depending on the camera capabilities.

In all the other cases it's possible to start the camera directly from unloaded state.

void QCamera::lockFailed () [signal]

Signals locking of at least one requested camera settings failed.

void QCamera::lockStatusChanged ( QCamera::LockStatus status, QCamera::LockChangeReason reason ) [signal]

Signals the overall status for all the requested camera locks was changed with specified reason.

void QCamera::lockStatusChanged ( QCamera::LockType lock, QCamera::LockStatus status, QCamera::LockChangeReason reason ) [signal]

Signals the lock status was changed with specified reason.

void QCamera::locked () [signal]

Signals all the requested camera settings are locked.

QCamera::LockTypes QCamera::requestedLocks () const

Returns the requested lock types.

void QCamera::searchAndLock () [slot]

Lock all the supported camera settings.

void QCamera::searchAndLock ( QCamera::LockTypes locks ) [slot]

Locks the camera settings with the requested locks, including focusing in the single autofocus mode, exposure and white balance if the exposure and white balance modes are not manual.

The camera settings are usually locked before taking one or multiple still images, in responce to the shutter button being half pressed.

The QCamera::locked() signal is emitted when camera settings are successfully locked, otherwise QCamera::lockFailed() is emitted.

QCamera also emits lockStatusChanged(QCamera::LockType, QCamera::LockStatus) on individual lock status changes and lockStatusChanged(QCamera::LockStatus) signal on composite status changes.

Locking serves two roles: it initializes calculation of automatic parameter (focusing, calculating the correct exposure and white balance) and allows to keep some or all of those parameters during number of shots.

If the camera doesn't support keeping one of parameters between shots, the related lock state changes to QCamera::Unlocked.

It's also acceptable to relock already locked settings, depending on the lock parameter this initiates new focusing, exposure or white balance calculation.

void QCamera::setViewfinder ( QVideoWidget * viewfinder )

Sets the QVideoWidget based camera viewfinder. The previously set viewfinder is detached.

void QCamera::setViewfinder ( QGraphicsVideoItem * viewfinder )

Sets the QGraphicsVideoItem based camera viewfinder. The previously set viewfinder is detached.

void QCamera::start () [slot]

Starts the camera.

State is changed to QCamera::ActiveState if camera is started successfully, otherwise error() signal is emitted.

While the camera state is changed to QCamera::ActiveState, starting the camera service can be asynchronous with the actual status reported with QCamera::status property.

void QCamera::stateChanged ( QCamera::State state ) [signal]

Signals the camera state has changed.

Usually the state changes is caused by calling load(), unload(), start() and stop(), but the state can also be changed change as a result of camera error.

void QCamera::statusChanged ( QCamera::Status status ) [signal]

Signals the camera status has changed.

void QCamera::stop () [slot]

Stops the camera. The camera state is changed from QCamera::ActiveState to QCamera::LoadedState.

QCamera::LockTypes QCamera::supportedLocks () const

Returns the lock types, camera supports.

void QCamera::unload () [slot]

Close the camera device and deallocate the related resources. The camera state is changed to QCamera::UnloadedStatus.

void QCamera::unlock () [slot]

Unlock all the requested camera locks.

void QCamera::unlock ( QCamera::LockTypes locks ) [slot]

Unlocks the camera settings specified with locks or cancel the current locking if one is active.

X

Thank you for giving your feedback.

Make sure it is related to this specific page. For more general bugs and requests, please use the Qt Bug Tracker.

[0]; s.parentNode.insertBefore(ga, s); })();
Publicité

Best Of

Actualités les plus lues

Semaine
Mois
Année
  1. « Quelque chose ne va vraiment pas avec les développeurs "modernes" », un développeur à "l'ancienne" critique la multiplication des bibliothèques 44
  2. Microsoft ouvre aux autres compilateurs C++ AMP, la spécification pour la conception d'applications parallèles C++ utilisant le GPU 22
  3. Les développeurs ignorent-ils trop les failles découvertes dans leur code ? Prenez-vous en compte les remarques des autres ? 17
  4. RIM : « 13 % des développeurs ont gagné plus de 100 000 $ sur l'AppWord », Qt et open-source au menu du BlackBerry DevCon Europe 0
  5. BlackBerry 10 : premières images du prochain OS de RIM qui devrait intégrer des widgets et des tuiles inspirées de Windows Phone 0
  6. Quelles nouveautés de C++11 Visual C++ doit-il rapidement intégrer ? Donnez-nous votre avis 10
  7. Adieu qmake, bienvenue qbs : Qt Building Suite, un outil déclaratif et extensible pour la compilation de projets Qt 17
Page suivante

Le Qt Quarterly au hasard

Logo

XQuery et la météo

Qt Quarterly est la revue trimestrielle proposée par Nokia et à destination des développeurs Qt. Ces articles d'une grande qualité technique sont rédigés par des experts Qt. Lire l'article.

Communauté

Ressources

Liens utiles

Contact

  • Vous souhaitez rejoindre la rédaction ou proposer un tutoriel, une traduction, une question... ? Postez dans le forum Contribuez ou contactez-nous par MP ou par email (voir en bas de page).

Qt dans le magazine

Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. Qt qtmobility-1.1
Copyright © 2012 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.
Vous avez déniché une erreur ? Un bug ? Une redirection cassée ? Ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP !
 
 
 
 
Partenaires

Hébergement Web