diff options
author | Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com> | 2012-07-16 16:40:57 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-07-19 09:08:52 +0200 |
commit | 0d0e89b1e89589812a91ee8d202de2576d6ae89f (patch) | |
tree | 6e954afb33ef63233773b00a2e561e37a23a9c59 /examples/declarative-camera/declarative-camera.qml | |
parent | f844d6d9da0fff8f1eaad1ad7f3d73e85560b735 (diff) | |
download | qtmultimedia-0d0e89b1e89589812a91ee8d202de2576d6ae89f.tar.gz |
Ported QML camera example to QtQuick 2.0 and QtMultimedia 5.0
Removed controls not currently supported on Qt5 platforms
and added basic video capture mode
Change-Id: I1f188d31af770cfb6ebb65ab5ee4a5467abcfbeb
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Diffstat (limited to 'examples/declarative-camera/declarative-camera.qml')
-rw-r--r-- | examples/declarative-camera/declarative-camera.qml | 93 |
1 files changed, 64 insertions, 29 deletions
diff --git a/examples/declarative-camera/declarative-camera.qml b/examples/declarative-camera/declarative-camera.qml index 54935b326..8ab6604b4 100644 --- a/examples/declarative-camera/declarative-camera.qml +++ b/examples/declarative-camera/declarative-camera.qml @@ -43,6 +43,10 @@ import QtMultimedia 5.0 Rectangle { id : cameraUI + + width: 800 + height: 480 + color: "black" state: "PhotoCapture" @@ -51,66 +55,97 @@ Rectangle { name: "PhotoCapture" StateChangeScript { script: { - camera.visible = true - camera.focus = true - stillControls.visible = true - photoPreview.visible = false + camera.captureMode = Camera.CaptureStillImage + camera.start() } } }, State { name: "PhotoPreview" + }, + State { + name: "VideoCapture" StateChangeScript { script: { - camera.visible = false - stillControls.visible = false - photoPreview.visible = true - photoPreview.focus = true + camera.captureMode = Camera.CaptureVideo + camera.start() + } + } + }, + State { + name: "VideoPreview" + StateChangeScript { + script: { + camera.stop() } } } ] + Camera { + id: camera + captureMode: Camera.CaptureStillImage + + imageCapture { + onImageCaptured: { + photoPreview.source = preview + stillControls.previewAvailable = true + cameraUI.state = "PhotoPreview" + } + } + + videoRecorder { + resolution: "640x480" + frameRate: 15 + } + } + PhotoPreview { id : photoPreview anchors.fill : parent onClosed: cameraUI.state = "PhotoCapture" + visible: cameraUI.state == "PhotoPreview" focus: visible + } - Keys.onPressed : { - //return to capture mode if the shutter button is touched - if (event.key == Qt.Key_CameraFocus && !event.isAutoRepeat) { - cameraUI.state = "PhotoCapture" - event.accepted = true; - } - } + VideoPreview { + id : videoPreview + anchors.fill : parent + onClosed: cameraUI.state = "VideoCapture" + visible: cameraUI.state == "VideoPreview" + focus: visible + + //don't load recorded video if preview is invisible + source: visible ? camera.videoRecorder.actualLocation : "" } - Camera { - id: camera + VideoOutput { + id: viewfinder + visible: cameraUI.state == "PhotoCapture" || cameraUI.state == "VideoCapture" + x: 0 y: 0 width: parent.width - stillControls.buttonsPanelWidth height: parent.height - focus: visible //to receive focus and capture key events - //captureResolution : "640x480" - - flashMode: stillControls.flashMode - whiteBalanceMode: stillControls.whiteBalance - exposureCompensation: stillControls.exposureCompensation - onImageCaptured : { - photoPreview.source = preview - stillControls.previewAvailable = true - cameraUI.state = "PhotoPreview" - } + source: camera } - CaptureControls { + PhotoCaptureControls { id: stillControls anchors.fill: parent camera: camera + visible: cameraUI.state == "PhotoCapture" onPreviewSelected: cameraUI.state = "PhotoPreview" + onVideoModeSelected: cameraUI.state = "VideoCapture" } + VideoCaptureControls { + id: videoControls + anchors.fill: parent + camera: camera + visible: cameraUI.state == "VideoCapture" + onPreviewSelected: cameraUI.state = "VideoPreview" + onPhotoModeSelected: cameraUI.state = "PhotoCapture" + } } |