Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qqnxmediarecorder.cpp
Go to the documentation of this file.
1// Copyright (C) 2016 Research In Motion
2// Copyright (C) 2022 The Qt Company Ltd.
3// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
4
5#undef QT_NO_CONTEXTLESS_CONNECT // Remove after porting connect() calls
6
8
10#include "qqnxaudioinput_p.h"
11#include "qqnxcamera_p.h"
13
14#include <private/qplatformcamera_p.h>
15
16#include <QDebug>
17#include <QUrl>
18
20
25
26bool QQnxMediaRecorder::isLocationWritable(const QUrl &/*location*/) const
27{
28 return true;
29}
30
32{
33 m_session = session;
34}
35
37{
38 if (!m_session)
39 return;
40
41 m_audioRecorder.disconnect();
42
43 if (hasCamera()) {
44 startVideoRecording(settings);
45 } else {
47 [this](qint64 d) { durationChanged(d); });
48
51
53 [this](const QUrl &l) { actualLocationChanged(l); });
54
55 startAudioRecording(settings);
56 }
57}
58
60{
61 if (hasCamera()) {
62 stopVideoRecording();
63 } else {
64 m_audioRecorder.stop();
65 }
66}
67
68void QQnxMediaRecorder::startAudioRecording(QMediaEncoderSettings &settings)
69{
70 if (!m_session)
71 return;
72
73 QQnxAudioInput *audioInput = m_session->audioInput();
74
75 if (!audioInput)
76 return;
77
78 m_audioRecorder.setInputDeviceId(audioInput->device.id());
79 m_audioRecorder.setMediaEncoderSettings(settings);
80 m_audioRecorder.setOutputUrl(outputLocation());
81 m_audioRecorder.record();
82}
83
84void QQnxMediaRecorder::startVideoRecording(QMediaEncoderSettings &settings)
85{
86 if (!hasCamera())
87 return;
88
89 auto *camera = static_cast<QQnxPlatformCamera*>(m_session->camera());
90
91 camera->setMediaEncoderSettings(settings);
92 camera->setOutputUrl(outputLocation());
93
94 if (camera->startVideoRecording())
96}
97
98void QQnxMediaRecorder::stopVideoRecording()
99{
100 if (!hasCamera())
101 return;
102
103 auto *camera = static_cast<QQnxPlatformCamera*>(m_session->camera());
104
105 camera->stop();
106
108}
109
110bool QQnxMediaRecorder::hasCamera() const
111{
112 return m_session && m_session->camera();
113}
114
QByteArray id
\qmlproperty string QtMultimedia::audioDevice::id
void stop()
\qmlmethod void Camera::stop()
Definition qcamera.h:205
\inmodule QtMultimedia
RecorderState
\qmlproperty enumeration QtMultimedia::MediaRecorder::recorderState
static QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
\threadsafe
Definition qobject.cpp:2960
static bool disconnect(const QObject *sender, const char *signal, const QObject *receiver, const char *member)
\threadsafe
Definition qobject.cpp:3236
void actualLocationChanged(const QUrl &location)
void stateChanged(QMediaRecorder::RecorderState state)
void durationChanged(qint64 position)
void setInputDeviceId(const QByteArray &id)
void durationChanged(qint64 durationMs)
void setOutputUrl(const QUrl &url)
void stateChanged(QMediaRecorder::RecorderState state)
void setMediaEncoderSettings(const QMediaEncoderSettings &settings)
void actualLocationChanged(const QUrl &location)
QPlatformCamera * camera() override
QQnxAudioInput * audioInput() const
bool isLocationWritable(const QUrl &location) const override
QQnxMediaRecorder(QMediaRecorder *parent)
void record(QMediaEncoderSettings &settings) override
void setCaptureSession(QQnxMediaCaptureSession *session)
\inmodule QtCore
Definition qurl.h:94
QCamera * camera
Definition camera.cpp:19
Combined button and popup list for selecting options.
GLdouble s
[6]
Definition qopenglext.h:235
long long qint64
Definition qtypes.h:60
QSettings settings("MySoft", "Star Runner")
[0]