Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qandroidintegration.cpp
Go to the documentation of this file.
1
// Copyright (C) 2021 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4
#
include
"qandroidintegration_p.h"
5
#
include
"common/qandroidglobal_p.h"
6
#
include
"mediacapture/qandroidmediacapturesession_p.h"
7
#
include
"wrappers/jni/androidmediaplayer_p.h"
8
#
include
"mediacapture/qandroidcamerasession_p.h"
9
#
include
"wrappers/jni/androidsurfacetexture_p.h"
10
#
include
"wrappers/jni/androidsurfaceview_p.h"
11
#
include
"wrappers/jni/androidcamera_p.h"
12
#
include
"mediacapture/qandroidcamera_p.h"
13
#
include
"mediacapture/qandroidimagecapture_p.h"
14
#
include
"mediacapture/qandroidmediaencoder_p.h"
15
#
include
"wrappers/jni/androidmediarecorder_p.h"
16
#
include
"qandroidformatsinfo_p.h"
17
#
include
"mediaplayer/qandroidmediaplayer_p.h"
18
#
include
"common/qandroidaudiooutput_p.h"
19
#
include
"common/qandroidaudioinput_p.h"
20
#
include
"audio/qandroidaudiodecoder_p.h"
21
22
#
include
<
QtCore
/
qcoreapplication
.
h
>
23
#
include
<
QtCore
/
qjnitypes
.
h
>
24
25
#
include
<
QtMultimedia
/
private
/
qplatformmediaplugin_p
.
h
>
26
#
include
<
QtMultimedia
/
private
/
qplatformvideodevices_p
.
h
>
27
#
include
<
QtMultimedia
/
private
/
qplatformvideosink_p
.
h
>
28
29
QT_BEGIN_NAMESPACE
30
31
Q_LOGGING_CATEGORY(qtAndroidMediaPlugin,
"qt.multimedia.android"
)
32
33
namespace
{
34
class
AndroidVideoDevices
:
public
QPlatformVideoDevices
35
{
36
public
:
37
using
QPlatformVideoDevices
::
QPlatformVideoDevices
;
38
39
protected
:
40
QList
<
QCameraDevice
>
findVideoInputs
()
const
override
41
{
42
return
QAndroidCameraSession::availableCameras();
43
}
44
};
45
}
// namespace
46
47
class
QAndroidMediaPlugin
:
public
QPlatformMediaPlugin
48
{
49
Q_OBJECT
50
Q_PLUGIN_METADATA(IID QPlatformMediaPlugin_iid FILE
"android.json"
)
51
52
public
:
53
QAndroidMediaPlugin
()
54
:
QPlatformMediaPlugin
()
55
{}
56
57
QPlatformMediaIntegration
*
create
(
const
QString
&
name
)
override
58
{
59
if
(
name
== u"android")
60
return
new
QAndroidIntegration
;
61
return
nullptr
;
62
}
63
};
64
65
QAndroidIntegration
::
QAndroidIntegration
() :
QPlatformMediaIntegration
(
QLatin1String
(
"android"
)) { }
66
67
q23
::
expected
<
QPlatformAudioDecoder
*,
QString
>
QAndroidIntegration
::
createAudioDecoder
(QAudioDecoder *decoder)
68
{
69
return
new
QAndroidAudioDecoder
(decoder);
70
}
71
72
QPlatformMediaFormatInfo
*
QAndroidIntegration
::
createFormatInfo
()
73
{
74
return
new
QAndroidFormatInfo;
75
}
76
77
q23
::
expected
<
QPlatformMediaCaptureSession
*,
QString
>
QAndroidIntegration
::
createCaptureSession
()
78
{
79
return
new
QAndroidMediaCaptureSession
();
80
}
81
82
q23
::
expected
<
QPlatformMediaPlayer
*,
QString
>
QAndroidIntegration
::
createPlayer
(QMediaPlayer *player)
83
{
84
return
new
QAndroidMediaPlayer
(player);
85
}
86
87
q23::expected<QPlatformCamera *, QString>
QAndroidIntegration
::createCamera(QCamera *camera)
88
{
89
return
new
QAndroidCamera(camera);
90
}
91
92
q23
::
expected
<
QPlatformMediaRecorder
*,
QString
>
QAndroidIntegration
::
createRecorder
(QMediaRecorder *recorder)
93
{
94
return
new
QAndroidMediaEncoder
(recorder);
95
}
96
97
q23
::
expected
<
QPlatformImageCapture
*,
QString
>
QAndroidIntegration
::
createImageCapture
(QImageCapture *imageCapture)
98
{
99
return
new
QAndroidImageCapture
(imageCapture);
100
}
101
102
q23
::
expected
<
QPlatformAudioOutput
*,
QString
>
QAndroidIntegration
::
createAudioOutput
(QAudioOutput *q)
103
{
104
return
new
QAndroidAudioOutput(q);
105
}
106
107
q23
::
expected
<
QPlatformAudioInput
*,
QString
>
QAndroidIntegration
::
createAudioInput
(QAudioInput *audioInput)
108
{
109
return
new
QAndroidAudioInput(audioInput);
110
}
111
112
q23::expected<QPlatformVideoSink *, QString>
QAndroidIntegration
::createVideoSink(QVideoSink *sink)
113
{
114
return
new
QOpenGLRhiVideoSink(sink);
115
}
116
117
Q_DECLARE_JNI_CLASS
(QtMultimediaUtils,
"org/qtproject/qt/android/multimedia/QtMultimediaUtils"
)
118
119
bool
QAndroidIntegration
::
registerNativeMethods
()
120
{
121
static
const
bool
result = []{
122
const
auto
context = QNativeInterface::QAndroidApplication::context();
123
QtJniTypes::QtMultimediaUtils::callStaticMethod<
void
>(
"setContext"
, context);
124
125
return
AndroidCamera
::
registerNativeMethods
(
)
126
&&
AndroidMediaRecorder
::
registerNativeMethods
(
)
127
&&
AndroidMediaPlayer
::
registerNativeMethods
(
)
128
&&
AndroidSurfaceHolder
::
registerNativeMethods
(
)
129
&&
AndroidSurfaceTexture
::
registerNativeMethods
(
)
;
130
}();
131
return
result;
132
}
133
134
QPlatformVideoDevices
*
QAndroidIntegration
::
createVideoDevices
()
135
{
136
return
new
AndroidVideoDevices(
this
);
137
}
138
139
QT_END_NAMESPACE
140
141
extern
"C"
Q_DECL_EXPORT jint JNICALL JNI_OnLoad(JavaVM *vm,
void
*
/*reserved*/
)
142
{
143
static
bool
initialized =
false
;
144
if
(initialized)
145
return
JNI_VERSION_1_6;
146
initialized =
true
;
147
148
typedef
union
{
149
JNIEnv *nativeEnvironment;
150
void
*venv;
151
} UnionJNIEnvToVoid;
152
153
UnionJNIEnvToVoid uenv;
154
uenv.venv = NULL;
155
156
if
(vm->GetEnv(&uenv.venv, JNI_VERSION_1_6) != JNI_OK)
157
return
JNI_ERR;
158
159
if
(!QAndroidIntegration::registerNativeMethods())
160
return
JNI_ERR;
161
162
return
JNI_VERSION_1_6;
163
}
164
165
#
include
"qandroidintegration.moc"
AndroidCamera
Definition
androidcamera_p.h:35
AndroidCamera::registerNativeMethods
static bool registerNativeMethods()
Definition
androidcamera.cpp:1782
AndroidMediaPlayer
Definition
androidmediaplayer_p.h:28
AndroidMediaPlayer::registerNativeMethods
static bool registerNativeMethods()
Definition
androidmediaplayer.cpp:513
AndroidMediaRecorder
Definition
androidmediarecorder_p.h:67
AndroidMediaRecorder::registerNativeMethods
static bool registerNativeMethods()
Definition
androidmediarecorder.cpp:333
AndroidSurfaceHolder
Definition
androidsurfaceview_p.h:28
AndroidSurfaceHolder::registerNativeMethods
static bool registerNativeMethods()
Definition
androidsurfaceview.cpp:79
AndroidSurfaceTexture
Definition
androidsurfacetexture_p.h:26
AndroidSurfaceTexture::registerNativeMethods
static bool registerNativeMethods()
Definition
androidsurfacetexture.cpp:131
QAndroidAudioDecoder
Definition
qandroidaudiodecoder_p.h:62
QAndroidImageCapture
Definition
qandroidimagecapture_p.h:26
QAndroidIntegration
Definition
qandroidintegration_p.h:25
QAndroidIntegration::createVideoDevices
QPlatformVideoDevices * createVideoDevices() override
Definition
qandroidintegration.cpp:134
QAndroidIntegration::createAudioInput
q23::expected< QPlatformAudioInput *, QString > createAudioInput(QAudioInput *audioInput) override
Definition
qandroidintegration.cpp:107
QAndroidIntegration::createAudioDecoder
q23::expected< QPlatformAudioDecoder *, QString > createAudioDecoder(QAudioDecoder *decoder) override
Definition
qandroidintegration.cpp:67
QAndroidIntegration::createAudioOutput
q23::expected< QPlatformAudioOutput *, QString > createAudioOutput(QAudioOutput *q) override
Definition
qandroidintegration.cpp:102
QAndroidIntegration::createImageCapture
q23::expected< QPlatformImageCapture *, QString > createImageCapture(QImageCapture *imageCapture) override
Definition
qandroidintegration.cpp:97
QAndroidIntegration::createRecorder
q23::expected< QPlatformMediaRecorder *, QString > createRecorder(QMediaRecorder *recorder) override
Definition
qandroidintegration.cpp:92
QAndroidIntegration::createPlayer
q23::expected< QPlatformMediaPlayer *, QString > createPlayer(QMediaPlayer *player) override
Definition
qandroidintegration.cpp:82
QAndroidIntegration::createFormatInfo
QPlatformMediaFormatInfo * createFormatInfo() override
Definition
qandroidintegration.cpp:72
QAndroidIntegration::QAndroidIntegration
QAndroidIntegration()
Definition
qandroidintegration.cpp:65
QAndroidIntegration::createCaptureSession
q23::expected< QPlatformMediaCaptureSession *, QString > createCaptureSession() override
Definition
qandroidintegration.cpp:77
QAndroidIntegration::registerNativeMethods
static bool registerNativeMethods()
Definition
qandroidintegration.cpp:119
QAndroidMediaCaptureSession
Definition
qandroidmediacapturesession_p.h:31
QAndroidMediaEncoder
Definition
qandroidmediaencoder_p.h:27
QAndroidMediaPlayer
Definition
qandroidmediaplayer_p.h:33
QAndroidMediaPlugin
Definition
qandroidintegration.cpp:48
QT_BEGIN_NAMESPACE::AndroidVideoDevices
Definition
qandroidintegration.cpp:35
QT_BEGIN_NAMESPACE::AndroidVideoDevices::findVideoInputs
QList< QCameraDevice > findVideoInputs() const override
Definition
qandroidintegration.cpp:40
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
Q_DECLARE_JNI_CLASS
Q_DECLARE_JNI_CLASS(MotionEvent, "android/view/MotionEvent")
qtmultimedia
src
plugins
multimedia
android
qandroidintegration.cpp
Generated on
for Qt by
1.18.0