From b1525638dc5114d3ad110740045afea0b16adec6 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Thu, 15 Apr 2021 14:51:40 +0200 Subject: Fix the declarative-camera example Adjust it to the API changes that happened on the QML side. Change-Id: I17e6be334ce5a6afb4558f946d8bd7bbcd0a6d32 Reviewed-by: Doris Verria Reviewed-by: Lars Knoll --- .../declarative-camera/CameraListButton.qml | 2 +- .../declarative-camera/CameraListPopup.qml | 2 +- .../declarative-camera/PhotoCaptureControls.qml | 12 ++++---- .../declarative-camera/VideoCaptureControls.qml | 22 +++++++------- .../multimedia/declarative-camera/VideoPreview.qml | 6 ++-- .../declarative-camera/declarative-camera.qml | 34 ++++++++++++---------- 6 files changed, 41 insertions(+), 37 deletions(-) (limited to 'examples') diff --git a/examples/multimedia/declarative-camera/CameraListButton.qml b/examples/multimedia/declarative-camera/CameraListButton.qml index 2232140c5..8b0c280ed 100644 --- a/examples/multimedia/declarative-camera/CameraListButton.qml +++ b/examples/multimedia/declarative-camera/CameraListButton.qml @@ -67,7 +67,7 @@ Item { CameraButton { anchors.fill: parent - text: popup.currentItem != null ? popup.currentItem.displayName : "" + text: popup.currentItem !== null ? popup.currentItem.description : "" onClicked: popup.toggle() } diff --git a/examples/multimedia/declarative-camera/CameraListPopup.qml b/examples/multimedia/declarative-camera/CameraListPopup.qml index 37b1b3f9d..31f320f20 100644 --- a/examples/multimedia/declarative-camera/CameraListPopup.qml +++ b/examples/multimedia/declarative-camera/CameraListPopup.qml @@ -79,7 +79,7 @@ Popup { height: cameraListPopup.itemHeight Text { - text: modelData.displayName + text: modelData.description anchors.fill: parent anchors.margins: 5 diff --git a/examples/multimedia/declarative-camera/PhotoCaptureControls.qml b/examples/multimedia/declarative-camera/PhotoCaptureControls.qml index 86c820699..41c91a374 100644 --- a/examples/multimedia/declarative-camera/PhotoCaptureControls.qml +++ b/examples/multimedia/declarative-camera/PhotoCaptureControls.qml @@ -52,7 +52,7 @@ import QtQuick import QtMultimedia FocusScope { - property Camera camera + property CaptureSession captureSession property bool previewAvailable : false property int buttonsPanelWidth: buttonPaneShadow.width @@ -81,8 +81,8 @@ FocusScope { CameraButton { text: "Capture" - visible: camera.imageCapture.ready - onClicked: camera.imageCapture.capture() + visible: captureSession.imageCapture.readyForCapture + onClicked: captureSession.imageCapture.capture() } CameraPropertyButton { @@ -115,7 +115,7 @@ FocusScope { text: "Fluorescent" } } - onValueChanged: captureControls.camera.imageProcessing.whiteBalanceMode = wbModesButton.value + onValueChanged: captureControls.captureSession.camera.imageProcessing.whiteBalanceMode = wbModesButton.value } CameraButton { @@ -136,8 +136,8 @@ FocusScope { spacing: 8 CameraListButton { - model: QtMultimedia.availableCameras - onValueChanged: captureControls.camera.deviceId = value + model: MediaDeviceManager.videoInputs + onValueChanged: captureSession.camera.cameraInfo = value } CameraButton { diff --git a/examples/multimedia/declarative-camera/VideoCaptureControls.qml b/examples/multimedia/declarative-camera/VideoCaptureControls.qml index afcb4bc2c..1f13dec00 100644 --- a/examples/multimedia/declarative-camera/VideoCaptureControls.qml +++ b/examples/multimedia/declarative-camera/VideoCaptureControls.qml @@ -52,7 +52,7 @@ import QtQuick import QtMultimedia FocusScope { - property Camera camera + property CaptureSession captureSession property bool previewAvailable : false property int buttonsPanelWidth: buttonPaneShadow.width @@ -81,22 +81,22 @@ FocusScope { CameraButton { text: "Record" - visible: camera.videoRecorder.recorderStatus == CameraRecorder.LoadedStatus - onClicked: camera.videoRecorder.record() + visible: captureSession.encoder.status !== MediaEncoder.RecordingStatus + onClicked: captureSession.encoder.record() } CameraButton { id: stopButton text: "Stop" - visible: camera.videoRecorder.recorderStatus == CameraRecorder.RecordingStatus - onClicked: camera.videoRecorder.stop() + visible: captureSession.encoder.status === MediaEncoder.RecordingStatus + onClicked: captureSession.encoder.stop() } CameraButton { text: "View" onClicked: captureControls.previewSelected() //don't show View button during recording - visible: camera.videoRecorder.actualLocation && !stopButton.visible + visible: captureSession.encoder.actualLocation && !stopButton.visible } } @@ -111,8 +111,8 @@ FocusScope { spacing: 8 CameraListButton { - model: QtMultimedia.availableCameras - onValueChanged: captureControls.camera.deviceId = value + model: MediaDeviceManager.videoInputs + onValueChanged: captureSession.camera.cameraInfo = value } CameraButton { @@ -135,8 +135,8 @@ FocusScope { width : 100 height: parent.height - currentZoom: camera.digitalZoom - maximumZoom: Math.min(4.0, camera.maximumDigitalZoom) - onZoomTo: camera.setDigitalZoom(value) + currentZoom: captureSession.camera.focus.zoomFactor + maximumZoom: captureSession.camera.focus.maximumZoomFactor + onZoomTo: captureSession.camera.focus.zoomFactor = value } } diff --git a/examples/multimedia/declarative-camera/VideoPreview.qml b/examples/multimedia/declarative-camera/VideoPreview.qml index 3a33634e1..5a2f90829 100644 --- a/examples/multimedia/declarative-camera/VideoPreview.qml +++ b/examples/multimedia/declarative-camera/VideoPreview.qml @@ -61,14 +61,16 @@ Item { autoPlay: true //switch back to viewfinder after playback finished - onStatusChanged: { + onMediaStatusChanged: { if (status == MediaPlayer.EndOfMedia) videoPreview.closed(); } + + videoOutput: output } VideoOutput { - source: player + id: output anchors.fill : parent } diff --git a/examples/multimedia/declarative-camera/declarative-camera.qml b/examples/multimedia/declarative-camera/declarative-camera.qml index 48a683844..5f1eb30d3 100644 --- a/examples/multimedia/declarative-camera/declarative-camera.qml +++ b/examples/multimedia/declarative-camera/declarative-camera.qml @@ -90,21 +90,21 @@ Rectangle { } ] - Camera { - id: camera - - imageCapture { - onImageCaptured: { - photoPreview.source = preview - stillControls.previewAvailable = true - cameraUI.state = "PhotoPreview" - } + CaptureSession { + id: captureSession + camera: Camera { + id: camera + } + imageCapture: ImageCapture { + id: imageCapture } - videoRecorder { - resolution: "640x480" - frameRate: 30 + encoder: MediaEncoder { + id: encoder +// resolution: "640x480" +// frameRate: 30 } + videoOutput: viewfinder } PhotoPreview { @@ -113,6 +113,7 @@ Rectangle { onClosed: cameraUI.state = "PhotoCapture" visible: cameraUI.state == "PhotoPreview" focus: visible + source: imageCapture.preview } VideoPreview { @@ -123,7 +124,7 @@ Rectangle { focus: visible //don't load recorded video if preview is invisible - source: visible ? camera.videoRecorder.actualLocation : "" + source: visible ? encoder.actualLocation : "" } VideoOutput { @@ -136,22 +137,23 @@ Rectangle { height: parent.height source: camera - autoOrientation: true +// autoOrientation: true } PhotoCaptureControls { id: stillControls anchors.fill: parent - camera: camera + captureSession: captureSession visible: cameraUI.state == "PhotoCapture" onPreviewSelected: cameraUI.state = "PhotoPreview" onVideoModeSelected: cameraUI.state = "VideoCapture" + previewAvailable: imageCapture.preview.length !== 0 } VideoCaptureControls { id: videoControls anchors.fill: parent - camera: camera + captureSession: captureSession visible: cameraUI.state == "VideoCapture" onPreviewSelected: cameraUI.state = "VideoPreview" onPhotoModeSelected: cameraUI.state = "PhotoCapture" -- cgit v1.2.3