30class QAndroidAudioSourceStream
final :
public QtMultimediaPrivate::QPlatformAudioSourceStream
32 using QPlatformAudiosourceStream = QtMultimediaPrivate::QPlatformAudioSourceStream;
36 std::optional<
int> ringbufferSize,
37 QAndroidAudioSource *parent,
float volume,
38 std::optional<int32_t> hardwareBufferFrames);
39 Q_DISABLE_COPY_MOVE(QAndroidAudioSourceStream)
40 ~QAndroidAudioSourceStream();
44 bool start(QIODevice *);
46 bool start(AudioCallback &&);
52 using QPlatformAudioSourceStream::bytesReady;
53 using QPlatformAudioSourceStream::deviceIsRingbufferReader;
54 using QPlatformAudioSourceStream::processedDuration;
55 using QPlatformAudioSourceStream::ringbufferSizeInBytes;
56 using QPlatformAudioSourceStream::setVolume;
62 QSpan<
const std::byte> getHostSpan(
void *audioData,
int numFrames)
const noexcept QT_MM_NONBLOCKING;
63 aaudio_data_callback_result_t processRingbuffer(QSpan<
const std::byte> audioSpan,
64 int numFrames)
noexcept QT_MM_NONBLOCKING;
65 aaudio_data_callback_result_t
66 processCallback(QSpan<
const std::byte> audioSpan)
noexcept QT_MM_NONBLOCKING;
67 void handleError(aaudio_result_t error);
69 QAndroidAudioSource *m_parent;
71 std::optional<AudioCallback> m_audioCallback;
73 std::unique_ptr<QtAAudio::Stream> m_stream;
75 std::optional<QAudioFormat> m_hostFormat;
78class QAndroidAudioSource
final
79 :
public QtMultimediaPrivate::QPlatformAudioSourceImplementationWithCallback<
80 QAndroidAudioSourceStream, QAndroidAudioSource>
82 using BaseClass = QtMultimediaPrivate::QPlatformAudioSourceImplementationWithCallback<
83 QAndroidAudioSourceStream, QAndroidAudioSource>;