30class QAndroidAudioSourceStream
final :
public QtMultimediaPrivate::QPlatformAudioSourceStream
32 using QPlatformAudiosourceStream = QtMultimediaPrivate::QPlatformAudioSourceStream;
33 using NativePeriodFrames = QtMultimediaPrivate::NativePeriodFrames;
37 std::optional<
int> ringbufferSize,
38 QAndroidAudioSource *parent,
float volume,
39 std::optional<NativePeriodFrames> nativePeriodFrames);
40 Q_DISABLE_COPY_MOVE(QAndroidAudioSourceStream)
41 ~QAndroidAudioSourceStream();
45 bool start(QIODevice *);
47 bool start(AudioCallback &&);
53 using QPlatformAudioSourceStream::bytesReady;
54 using QPlatformAudioSourceStream::deviceIsRingbufferReader;
55 using QPlatformAudioSourceStream::processedDuration;
56 using QPlatformAudioSourceStream::ringbufferSizeInBytes;
57 using QPlatformAudioSourceStream::setVolume;
63 QSpan<
const std::byte> getHostSpan(
void *audioData,
int numFrames)
const noexcept QT_MM_NONBLOCKING;
64 aaudio_data_callback_result_t processRingbuffer(QSpan<
const std::byte> audioSpan,
65 int numFrames)
noexcept QT_MM_NONBLOCKING;
66 aaudio_data_callback_result_t
67 processCallback(QSpan<
const std::byte> audioSpan)
noexcept QT_MM_NONBLOCKING;
68 void handleError(aaudio_result_t error);
70 QAndroidAudioSource *m_parent;
72 std::optional<AudioCallback> m_audioCallback;
74 std::unique_ptr<QtAAudio::Stream> m_stream;
76 std::optional<QAudioFormat> m_hostFormat;
79class QAndroidAudioSource
final
80 :
public QtMultimediaPrivate::QPlatformAudioSourceImplementationWithCallback<
81 QAndroidAudioSourceStream, QAndroidAudioSource>
83 using BaseClass = QtMultimediaPrivate::QPlatformAudioSourceImplementationWithCallback<
84 QAndroidAudioSourceStream, QAndroidAudioSource>;
QAndroidAudioSourceStream(QAudioDevice device, const QAudioFormat &format, std::optional< int > ringbufferSize, QAndroidAudioSource *parent, float volume, std::optional< NativePeriodFrames > nativePeriodFrames)