3#include <AUI/Common/AObject.h>
4#include <AUI/Common/ASignal.h>
5#include <AUI/Url/AUrl.h>
6#include <AUI/Audio/ASoundResampler.h>
7#include <AUI/Audio/VolumeLevel.h>
15class API_AUI_AUDIO IAudioPlayer:
public AObject {
17 explicit IAudioPlayer(
AUrl url);
51 return mPlaybackStatus;
59 return *mResampledStream;
73 bool loop() const noexcept {
87 aui::audio::VolumeLevel
volume() const noexcept {
98 const AUrl& url() const noexcept {
116 bool isInitialized() const noexcept {
117 return mResampledStream != std::nullopt;
122 void initializeIfNeeded() {
123 if (!isInitialized()) {
131 aui::audio::VolumeLevel mVolume = aui::audio::VolumeLevel::MAX;
132 AOptional<AUrl> mUrl;
133 _<ISoundInputStream> mSourceStream;
134 AOptional<ASoundResampler> mResampledStream;
135 PlaybackStatus mPlaybackStatus = PlaybackStatus::STOPPED;
138 virtual void playImpl() = 0;
139 virtual void pauseImpl() = 0;
140 virtual void stopImpl() = 0;
142 virtual void onVolumeSet() { }
143 virtual void onLoopSet() { }
Implements audio mixing and resampling.
Definition ASoundResampler.h:34
Uniform Resource Locator implementation.
Definition AUrl.h:31
void pause()
Pauses audio playback keeping playback progress.
emits read
On sound stream read.
Definition IAudioPlayer.h:113
void onFinished()
Called By AAudioMixer when the playback is finished.
void setVolume(aui::audio::VolumeLevel volume)
Set level of volume.
void setLoop(bool loop)
Set loop flag, is loop flag is true then audio playback wouldn't be stopped after it ends and sound s...
bool loop() const noexcept
Definition IAudioPlayer.h:73
void stop()
Pauses audio playback without keeping playback progress.
PlaybackStatus playbackStatus() const noexcept
Definition IAudioPlayer.h:50
void play()
Starts audio playback, if playback was previously paused, it will continue from where it was paused.
ASoundResampler & resampledStream()
Get resampled stream for playback.
Definition IAudioPlayer.h:58
emits finished
On playback finished.
Definition IAudioPlayer.h:108
PlaybackStatus
Playback status depends on last called function among play(), pause(), stop().
Definition IAudioPlayer.h:26
aui::audio::VolumeLevel volume() const noexcept
Definition IAudioPlayer.h:87
An std::weak_ptr with AUI extensions.
Definition SharedPtrTypes.h:215
ASignal< Args... > emits
A signal declaration.
Definition ASignal.h:577