4#ifndef QANDROIDAUDIOINPUT_H
5#define QANDROIDAUDIOINPUT_H
18#include <private/qaudio_platform_implementation_support_p.h>
20#include <private/qaaudiostream_p.h>
22#include <aaudio/AAudio.h>
28class QAndroidAudioSource;
34 std::optional<
int> ringbufferSize,
35 QAndroidAudioSource *parent,
float volume,
36 std::optional<int32_t> hardwareBufferFrames);
42 bool start(QIODevice *);
59 aaudio_data_callback_result_t process(
void *audioData,
61 void handleError(aaudio_result_t error);
63 QAndroidAudioSource *m_parent;
65 std::unique_ptr<QtAAudio::Stream> m_stream;
67 std::optional<NativeSampleFormat> m_nativeSampleFormat;
70class QAndroidAudioSource
final
71 :
public QtMultimediaPrivate::QPlatformAudioSourceImplementation<QAndroidAudioSourceStream,
75 QtMultimediaPrivate::QPlatformAudioSourceImplementation<QAndroidAudioSourceStream,
QAndroidAudioSinkStream(QAudioDevice, const QAudioFormat &, std::optional< qsizetype > ringbufferSize, QAndroidAudioSink *parent, float volume, std::optional< int32_t > hardwareBufferFrames, AudioEndpointRole)
bool start(AudioCallback cb)
void stop(ShutdownPolicy policy)
bool start(QIODevice *device)
void updateStreamIdle(bool arg) override
QAndroidAudioSink(QAudioDevice device, const QAudioFormat &format, QObject *parent)
~QAndroidAudioSourceStream()
void updateStreamIdle(bool idle) override
QAndroidAudioSourceStream(QAudioDevice device, const QAudioFormat &format, std::optional< int > ringbufferSize, QAndroidAudioSource *parent, float volume, std::optional< int32_t > hardwareBufferFrames)
void stop(ShutdownPolicy)
QAndroidAudioSource(QAudioDevice device, const QAudioFormat &format, QObject *parent)
static void onAudioInputDevicesUpdated(JNIEnv *, jobject)
static void onAudioOutputDevicesUpdated(JNIEnv *, jobject)
Q_DECLARE_JNI_CLASS(MotionEvent, "android/view/MotionEvent")